Updated Cloudstack library dependency
diff --git a/Gopkg.lock b/Gopkg.lock
index 3f4677b..4664ced 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -15,7 +15,7 @@
   name = "github.com/Azure/go-ansiterm"
   packages = [
     ".",
-    "winterm",
+    "winterm"
   ]
   pruneopts = ""
   revision = "d6e3b3328b783f23731bc4d058875b0371ff8109"
@@ -71,7 +71,7 @@
     "mvcc/mvccpb",
     "pkg/tlsutil",
     "pkg/transport",
-    "pkg/types",
+    "pkg/types"
   ]
   pruneopts = ""
   revision = "27fc7e2296f506182f58ce846e48f36b34fe6842"
@@ -115,7 +115,7 @@
   name = "github.com/docker/distribution"
   packages = [
     "digestset",
-    "reference",
+    "reference"
   ]
   pruneopts = ""
   revision = "93e082742a009850ac46962150b2f652a822c5ff"
@@ -125,7 +125,7 @@
   name = "github.com/docker/docker"
   packages = [
     "pkg/term",
-    "pkg/term/windows",
+    "pkg/term/windows"
   ]
   pruneopts = ""
   revision = "092cba3727bb9b4a2f0e922cd6c0f93ea270e363"
@@ -144,7 +144,7 @@
   name = "github.com/emicklei/go-restful"
   packages = [
     ".",
-    "log",
+    "log"
   ]
   pruneopts = ""
   revision = "3eb9738c1697594ea6e71a7156a9bb32ed216cf0"
@@ -205,7 +205,7 @@
     "gogoproto",
     "proto",
     "protoc-gen-gogo/descriptor",
-    "sortkeys",
+    "sortkeys"
   ]
   pruneopts = ""
   revision = "636bf0302bc95575d69441b25a2603156ffdddf1"
@@ -227,7 +227,7 @@
     "ptypes",
     "ptypes/any",
     "ptypes/duration",
-    "ptypes/timestamp",
+    "ptypes/timestamp"
   ]
   pruneopts = ""
   revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5"
@@ -263,7 +263,7 @@
   packages = [
     "OpenAPIv2",
     "compiler",
-    "extensions",
+    "extensions"
   ]
   pruneopts = ""
   revision = "7c663266750e7d82587642f65e60bc4083f1f84e"
@@ -275,7 +275,7 @@
   name = "github.com/gregjones/httpcache"
   packages = [
     ".",
-    "diskcache",
+    "diskcache"
   ]
   pruneopts = ""
   revision = "c63ab54fda8f77302f8d414e19933f2b6026a089"
@@ -293,7 +293,7 @@
   name = "github.com/hashicorp/golang-lru"
   packages = [
     ".",
-    "simplelru",
+    "simplelru"
   ]
   pruneopts = ""
   revision = "20f1fb78b0740ba8c3cb143a61e86ba5c8669768"
@@ -346,7 +346,7 @@
   packages = [
     "buffer",
     "jlexer",
-    "jwriter",
+    "jwriter"
   ]
   pruneopts = ""
   revision = "60711f1a8329503b04e1c88535f419d0bb440bff"
@@ -412,7 +412,7 @@
   name = "github.com/prometheus/client_golang"
   packages = [
     "prometheus",
-    "prometheus/internal",
+    "prometheus/internal"
   ]
   pruneopts = ""
   revision = "abad2d1bd44235a26707c172eab6bca5bf2dbad3"
@@ -433,7 +433,7 @@
   packages = [
     "expfmt",
     "internal/bitbucket.org/ww/goautoneg",
-    "model",
+    "model"
   ]
   pruneopts = ""
   revision = "1f2c4f3cd6db5fd6f68f36af6b6d5d936fd93c4e"
@@ -446,7 +446,7 @@
     ".",
     "internal/util",
     "nfs",
-    "xfs",
+    "xfs"
   ]
   pruneopts = ""
   revision = "185b4288413d2a0dd0806f78c90dde719829e5ae"
@@ -468,12 +468,12 @@
   version = "v1.0.3"
 
 [[projects]]
-  digest = "1:622a2d180e8318f2b85e259fdef60b1d093b36e973b4eaed9da4f88e951c1f90"
+  digest = "1:cf0db94943c2e86c1ef2c2e611b68818577e61c8cd2934724d6cc02b0082b3b8"
   name = "github.com/xanzy/go-cloudstack"
   packages = ["cloudstack"]
   pruneopts = ""
-  revision = "0bc524282c2afc7da6ef19291cac338b8c6b12a7"
-  version = "v2.3.3"
+  revision = "e82309d13586874632a437047b1d9073295c723f"
+  version = "v2.4.1"
 
 [[projects]]
   branch = "master"
@@ -483,7 +483,7 @@
     "ed25519",
     "ed25519/internal/edwards25519",
     "pbkdf2",
-    "ssh/terminal",
+    "ssh/terminal"
   ]
   pruneopts = ""
   revision = "3d3f9f413869b949e48070b5bc593aa22cc2b8f2"
@@ -501,7 +501,7 @@
     "idna",
     "internal/timeseries",
     "trace",
-    "websocket",
+    "websocket"
   ]
   pruneopts = ""
   revision = "adae6a3d119ae4890b46832a2e88a95adc62b8e7"
@@ -512,7 +512,7 @@
   name = "golang.org/x/oauth2"
   packages = [
     ".",
-    "internal",
+    "internal"
   ]
   pruneopts = ""
   revision = "f42d05182288abf10faef86d16c0d07b8d40ea2d"
@@ -523,7 +523,7 @@
   name = "golang.org/x/sys"
   packages = [
     "unix",
-    "windows",
+    "windows"
   ]
   pruneopts = ""
   revision = "93218def8b18e66adbdab3eca8ec334700329f1f"
@@ -546,7 +546,7 @@
     "unicode/cldr",
     "unicode/norm",
     "unicode/rangetable",
-    "width",
+    "width"
   ]
   pruneopts = ""
   revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"
@@ -570,7 +570,7 @@
     "internal/log",
     "internal/remote_api",
     "internal/urlfetch",
-    "urlfetch",
+    "urlfetch"
   ]
   pruneopts = ""
   revision = "4a4468ece617fc8205e99368fa2200e9d1fad421"
@@ -614,7 +614,7 @@
     "resolver/passthrough",
     "stats",
     "status",
-    "tap",
+    "tap"
   ]
   pruneopts = ""
   revision = "2e463a05d100327ca47ac218281906921038fd95"
@@ -627,7 +627,7 @@
     ".",
     "scanner",
     "token",
-    "types",
+    "types"
   ]
   pruneopts = ""
   revision = "61b2c08bc8f6068f7c5ca684372f9a6cb1c45ebe"
@@ -656,7 +656,7 @@
     ".",
     "cipher",
     "json",
-    "jwt",
+    "jwt"
   ]
   pruneopts = ""
   revision = "ef984e69dd356202fd4e4910d4d9c24468bdf0b8"
@@ -714,7 +714,7 @@
     "settings/v1alpha1",
     "storage/v1",
     "storage/v1alpha1",
-    "storage/v1beta1",
+    "storage/v1beta1"
   ]
   pruneopts = ""
   revision = "d01564359763a39d310efc27866b63d4f5c92f1d"
@@ -782,7 +782,7 @@
     "pkg/version",
     "pkg/watch",
     "third_party/forked/golang/json",
-    "third_party/forked/golang/reflect",
+    "third_party/forked/golang/reflect"
   ]
   pruneopts = ""
   revision = "0028e7a3cc82b29fea214c5793c77c24a23bb3ef"
@@ -890,7 +890,7 @@
     "plugin/pkg/audit/truncate",
     "plugin/pkg/audit/webhook",
     "plugin/pkg/authenticator/token/webhook",
-    "plugin/pkg/authorizer/webhook",
+    "plugin/pkg/authorizer/webhook"
   ]
   pruneopts = ""
   revision = "6b360527ed84a1a6bb3883faef76c71cc17499ba"
@@ -1037,7 +1037,7 @@
     "util/homedir",
     "util/integer",
     "util/retry",
-    "util/workqueue",
+    "util/workqueue"
   ]
   pruneopts = ""
   revision = "46a8dc78ec29761d6cb89a9eb50ddde947c84030"
@@ -1059,7 +1059,7 @@
     "pkg/apis/csi/v1alpha1",
     "pkg/client/clientset/versioned",
     "pkg/client/clientset/versioned/scheme",
-    "pkg/client/clientset/versioned/typed/csi/v1alpha1",
+    "pkg/client/clientset/versioned/typed/csi/v1alpha1"
   ]
   pruneopts = ""
   revision = "0fa5681c71625890e8180232e5f687755f3635b1"
@@ -1089,7 +1089,7 @@
     "pkg/common",
     "pkg/handler",
     "pkg/util",
-    "pkg/util/proto",
+    "pkg/util/proto"
   ]
   pruneopts = ""
   revision = "0317810137be915b9cf888946c6e115c1bfac693"
@@ -1161,7 +1161,7 @@
     "pkg/volume/util/fs",
     "pkg/volume/util/recyclerclient",
     "pkg/volume/util/types",
-    "pkg/volume/util/volumepathhandler",
+    "pkg/volume/util/volumepathhandler"
   ]
   pruneopts = ""
   revision = "23dc5401f4e9b985860aeae9657bba1b28c74ff8"
@@ -1173,7 +1173,7 @@
   name = "k8s.io/utils"
   packages = [
     "exec",
-    "pointer",
+    "pointer"
   ]
   pruneopts = ""
   revision = "0d26856f57b32ec3398579285e5c8a2bfe8c5243"
@@ -1205,7 +1205,7 @@
     "k8s.io/klog",
     "k8s.io/kubernetes/cmd/cloud-controller-manager/app",
     "k8s.io/kubernetes/pkg/client/metrics/prometheus",
-    "k8s.io/kubernetes/pkg/version/prometheus",
+    "k8s.io/kubernetes/pkg/version/prometheus"
   ]
   solver-name = "gps-cdcl"
   solver-version = 1
diff --git a/Gopkg.toml b/Gopkg.toml
index ac66c54..741d195 100644
--- a/Gopkg.toml
+++ b/Gopkg.toml
@@ -14,6 +14,10 @@
   name = "k8s.io/kubernetes"
   version = "1.13.0-beta.1"
 
+[[constraint]]
+  name = "github.com/xanzy/go-cloudstack"
+  version = "v2.4.1"
+
 [[override]]
   name = "k8s.io/api"
   version = "kubernetes-1.13.0-beta.1"
diff --git a/vendor/github.com/xanzy/go-cloudstack/README.md b/vendor/github.com/xanzy/go-cloudstack/README.md
index 68814e9..396bf4c 100644
--- a/vendor/github.com/xanzy/go-cloudstack/README.md
+++ b/vendor/github.com/xanzy/go-cloudstack/README.md
@@ -4,13 +4,13 @@
 
 ## Status
 
-This package covers the complete CloudStack API and is well tested. Of course there will still be untested corner cases when you have over 400 API commands that you can use, but over all it's save to use this package.
+This package covers the complete CloudStack API and is well tested. Of course there will still be untested corner cases when you have over 400 API commands that you can use, but over all it's safe to use this package.
 
-To be able to find the API command you want, they are grouped by 'services' which match the grouping you can see/find on the [CloudStack API docs](http://cloudstack.apache.org/docs/api/apidocs-4.8/TOC_Root_Admin.html) website.
+To be able to find the API command you want, they are grouped by 'services' which match the grouping you can see/find on the [CloudStack API docs](http://cloudstack.apache.org/docs/api/apidocs-4.11/TOC_Root_Admin.html) website.
 
 ## Usage
 
-The cloudstack package is always generated against the latest stable CloudStack release (currently v4.8.x). Luckily the API doesn't change that much, and were it does we try to make sure the generated package is able handle both the old and the new case. Over time it will be impossible to support all version with just one package, but until now we seem to manage this pretty well.
+The cloudstack package is always generated against the latest stable CloudStack release (currently v4.11.x). Luckily the API doesn't change that much, and were it does we try to make sure the generated package is able handle both the old and the new case. Over time it will be impossible to support all version with just one package, but until now we seem to manage this pretty well.
 
 Please see the package documentation on [GoDocs](http://godoc.org/github.com/xanzy/go-cloudstack/cloudstack).
 
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/APIDiscoveryService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/APIDiscoveryService.go
index 30ae04e..030f034 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/APIDiscoveryService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/APIDiscoveryService.go
@@ -73,25 +73,29 @@
 }
 
 type Api struct {
+	Description string        `json:"description"`
+	Isasync     bool          `json:"isasync"`
+	Name        string        `json:"name"`
+	Params      []ApiParams   `json:"params"`
+	Related     string        `json:"related"`
+	Response    []ApiResponse `json:"response"`
+	Since       string        `json:"since"`
+	Type        string        `json:"type"`
+}
+
+type ApiResponse struct {
+	Description string        `json:"description"`
+	Name        string        `json:"name"`
+	Response    []interface{} `json:"response"`
+	Type        string        `json:"type"`
+}
+
+type ApiParams struct {
 	Description string `json:"description"`
-	Isasync     bool   `json:"isasync"`
+	Length      int    `json:"length"`
 	Name        string `json:"name"`
-	Params      []struct {
-		Description string `json:"description"`
-		Length      int    `json:"length"`
-		Name        string `json:"name"`
-		Related     string `json:"related"`
-		Required    bool   `json:"required"`
-		Since       string `json:"since"`
-		Type        string `json:"type"`
-	} `json:"params"`
-	Related  string `json:"related"`
-	Response []struct {
-		Description string        `json:"description"`
-		Name        string        `json:"name"`
-		Response    []interface{} `json:"response"`
-		Type        string        `json:"type"`
-	} `json:"response"`
-	Since string `json:"since"`
-	Type  string `json:"type"`
+	Related     string `json:"related"`
+	Required    bool   `json:"required"`
+	Since       string `json:"since"`
+	Type        string `json:"type"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AccountService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AccountService.go
index a24e1e2..ef82b76 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AccountService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AccountService.go
@@ -319,83 +319,86 @@
 }
 
 type CreateAccountResponse struct {
-	Accountdetails            map[string]string `json:"accountdetails"`
-	Accounttype               int               `json:"accounttype"`
-	Cpuavailable              string            `json:"cpuavailable"`
-	Cpulimit                  string            `json:"cpulimit"`
-	Cputotal                  int64             `json:"cputotal"`
-	Defaultzoneid             string            `json:"defaultzoneid"`
-	Domain                    string            `json:"domain"`
-	Domainid                  string            `json:"domainid"`
-	Groups                    []string          `json:"groups"`
-	Id                        string            `json:"id"`
-	Ipavailable               string            `json:"ipavailable"`
-	Iplimit                   string            `json:"iplimit"`
-	Iptotal                   int64             `json:"iptotal"`
-	Iscleanuprequired         bool              `json:"iscleanuprequired"`
-	Isdefault                 bool              `json:"isdefault"`
-	Memoryavailable           string            `json:"memoryavailable"`
-	Memorylimit               string            `json:"memorylimit"`
-	Memorytotal               int64             `json:"memorytotal"`
-	Name                      string            `json:"name"`
-	Networkavailable          string            `json:"networkavailable"`
-	Networkdomain             string            `json:"networkdomain"`
-	Networklimit              string            `json:"networklimit"`
-	Networktotal              int64             `json:"networktotal"`
-	Primarystorageavailable   string            `json:"primarystorageavailable"`
-	Primarystoragelimit       string            `json:"primarystoragelimit"`
-	Primarystoragetotal       int64             `json:"primarystoragetotal"`
-	Projectavailable          string            `json:"projectavailable"`
-	Projectlimit              string            `json:"projectlimit"`
-	Projecttotal              int64             `json:"projecttotal"`
-	Receivedbytes             int64             `json:"receivedbytes"`
-	Roleid                    string            `json:"roleid"`
-	Rolename                  string            `json:"rolename"`
-	Roletype                  string            `json:"roletype"`
-	Secondarystorageavailable string            `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
-	Sentbytes                 int64             `json:"sentbytes"`
-	Snapshotavailable         string            `json:"snapshotavailable"`
-	Snapshotlimit             string            `json:"snapshotlimit"`
-	Snapshottotal             int64             `json:"snapshottotal"`
-	State                     string            `json:"state"`
-	Templateavailable         string            `json:"templateavailable"`
-	Templatelimit             string            `json:"templatelimit"`
-	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	Accountdetails            map[string]string           `json:"accountdetails"`
+	Accounttype               int                         `json:"accounttype"`
+	Cpuavailable              string                      `json:"cpuavailable"`
+	Cpulimit                  string                      `json:"cpulimit"`
+	Cputotal                  int64                       `json:"cputotal"`
+	Defaultzoneid             string                      `json:"defaultzoneid"`
+	Domain                    string                      `json:"domain"`
+	Domainid                  string                      `json:"domainid"`
+	Groups                    []string                    `json:"groups"`
+	Id                        string                      `json:"id"`
+	Ipavailable               string                      `json:"ipavailable"`
+	Iplimit                   string                      `json:"iplimit"`
+	Iptotal                   int64                       `json:"iptotal"`
+	Iscleanuprequired         bool                        `json:"iscleanuprequired"`
+	Isdefault                 bool                        `json:"isdefault"`
+	Memoryavailable           string                      `json:"memoryavailable"`
+	Memorylimit               string                      `json:"memorylimit"`
+	Memorytotal               int64                       `json:"memorytotal"`
+	Name                      string                      `json:"name"`
+	Networkavailable          string                      `json:"networkavailable"`
+	Networkdomain             string                      `json:"networkdomain"`
+	Networklimit              string                      `json:"networklimit"`
+	Networktotal              int64                       `json:"networktotal"`
+	Primarystorageavailable   string                      `json:"primarystorageavailable"`
+	Primarystoragelimit       string                      `json:"primarystoragelimit"`
+	Primarystoragetotal       int64                       `json:"primarystoragetotal"`
+	Projectavailable          string                      `json:"projectavailable"`
+	Projectlimit              string                      `json:"projectlimit"`
+	Projecttotal              int64                       `json:"projecttotal"`
+	Receivedbytes             int64                       `json:"receivedbytes"`
+	Roleid                    string                      `json:"roleid"`
+	Rolename                  string                      `json:"rolename"`
+	Roletype                  string                      `json:"roletype"`
+	Secondarystorageavailable string                      `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string                      `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64                     `json:"secondarystoragetotal"`
+	Sentbytes                 int64                       `json:"sentbytes"`
+	Snapshotavailable         string                      `json:"snapshotavailable"`
+	Snapshotlimit             string                      `json:"snapshotlimit"`
+	Snapshottotal             int64                       `json:"snapshottotal"`
+	State                     string                      `json:"state"`
+	Templateavailable         string                      `json:"templateavailable"`
+	Templatelimit             string                      `json:"templatelimit"`
+	Templatetotal             int64                       `json:"templatetotal"`
+	User                      []CreateAccountResponseUser `json:"user"`
+	Vmavailable               string                      `json:"vmavailable"`
+	Vmlimit                   string                      `json:"vmlimit"`
+	Vmrunning                 int                         `json:"vmrunning"`
+	Vmstopped                 int                         `json:"vmstopped"`
+	Vmtotal                   int64                       `json:"vmtotal"`
+	Volumeavailable           string                      `json:"volumeavailable"`
+	Volumelimit               string                      `json:"volumelimit"`
+	Volumetotal               int64                       `json:"volumetotal"`
+	Vpcavailable              string                      `json:"vpcavailable"`
+	Vpclimit                  string                      `json:"vpclimit"`
+	Vpctotal                  int64                       `json:"vpctotal"`
+}
+
+type CreateAccountResponseUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type DeleteAccountParams struct {
@@ -648,84 +651,87 @@
 }
 
 type DisableAccountResponse struct {
-	JobID                     string            `json:"jobid"`
-	Accountdetails            map[string]string `json:"accountdetails"`
-	Accounttype               int               `json:"accounttype"`
-	Cpuavailable              string            `json:"cpuavailable"`
-	Cpulimit                  string            `json:"cpulimit"`
-	Cputotal                  int64             `json:"cputotal"`
-	Defaultzoneid             string            `json:"defaultzoneid"`
-	Domain                    string            `json:"domain"`
-	Domainid                  string            `json:"domainid"`
-	Groups                    []string          `json:"groups"`
-	Id                        string            `json:"id"`
-	Ipavailable               string            `json:"ipavailable"`
-	Iplimit                   string            `json:"iplimit"`
-	Iptotal                   int64             `json:"iptotal"`
-	Iscleanuprequired         bool              `json:"iscleanuprequired"`
-	Isdefault                 bool              `json:"isdefault"`
-	Memoryavailable           string            `json:"memoryavailable"`
-	Memorylimit               string            `json:"memorylimit"`
-	Memorytotal               int64             `json:"memorytotal"`
-	Name                      string            `json:"name"`
-	Networkavailable          string            `json:"networkavailable"`
-	Networkdomain             string            `json:"networkdomain"`
-	Networklimit              string            `json:"networklimit"`
-	Networktotal              int64             `json:"networktotal"`
-	Primarystorageavailable   string            `json:"primarystorageavailable"`
-	Primarystoragelimit       string            `json:"primarystoragelimit"`
-	Primarystoragetotal       int64             `json:"primarystoragetotal"`
-	Projectavailable          string            `json:"projectavailable"`
-	Projectlimit              string            `json:"projectlimit"`
-	Projecttotal              int64             `json:"projecttotal"`
-	Receivedbytes             int64             `json:"receivedbytes"`
-	Roleid                    string            `json:"roleid"`
-	Rolename                  string            `json:"rolename"`
-	Roletype                  string            `json:"roletype"`
-	Secondarystorageavailable string            `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
-	Sentbytes                 int64             `json:"sentbytes"`
-	Snapshotavailable         string            `json:"snapshotavailable"`
-	Snapshotlimit             string            `json:"snapshotlimit"`
-	Snapshottotal             int64             `json:"snapshottotal"`
-	State                     string            `json:"state"`
-	Templateavailable         string            `json:"templateavailable"`
-	Templatelimit             string            `json:"templatelimit"`
-	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	JobID                     string                       `json:"jobid"`
+	Accountdetails            map[string]string            `json:"accountdetails"`
+	Accounttype               int                          `json:"accounttype"`
+	Cpuavailable              string                       `json:"cpuavailable"`
+	Cpulimit                  string                       `json:"cpulimit"`
+	Cputotal                  int64                        `json:"cputotal"`
+	Defaultzoneid             string                       `json:"defaultzoneid"`
+	Domain                    string                       `json:"domain"`
+	Domainid                  string                       `json:"domainid"`
+	Groups                    []string                     `json:"groups"`
+	Id                        string                       `json:"id"`
+	Ipavailable               string                       `json:"ipavailable"`
+	Iplimit                   string                       `json:"iplimit"`
+	Iptotal                   int64                        `json:"iptotal"`
+	Iscleanuprequired         bool                         `json:"iscleanuprequired"`
+	Isdefault                 bool                         `json:"isdefault"`
+	Memoryavailable           string                       `json:"memoryavailable"`
+	Memorylimit               string                       `json:"memorylimit"`
+	Memorytotal               int64                        `json:"memorytotal"`
+	Name                      string                       `json:"name"`
+	Networkavailable          string                       `json:"networkavailable"`
+	Networkdomain             string                       `json:"networkdomain"`
+	Networklimit              string                       `json:"networklimit"`
+	Networktotal              int64                        `json:"networktotal"`
+	Primarystorageavailable   string                       `json:"primarystorageavailable"`
+	Primarystoragelimit       string                       `json:"primarystoragelimit"`
+	Primarystoragetotal       int64                        `json:"primarystoragetotal"`
+	Projectavailable          string                       `json:"projectavailable"`
+	Projectlimit              string                       `json:"projectlimit"`
+	Projecttotal              int64                        `json:"projecttotal"`
+	Receivedbytes             int64                        `json:"receivedbytes"`
+	Roleid                    string                       `json:"roleid"`
+	Rolename                  string                       `json:"rolename"`
+	Roletype                  string                       `json:"roletype"`
+	Secondarystorageavailable string                       `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string                       `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64                      `json:"secondarystoragetotal"`
+	Sentbytes                 int64                        `json:"sentbytes"`
+	Snapshotavailable         string                       `json:"snapshotavailable"`
+	Snapshotlimit             string                       `json:"snapshotlimit"`
+	Snapshottotal             int64                        `json:"snapshottotal"`
+	State                     string                       `json:"state"`
+	Templateavailable         string                       `json:"templateavailable"`
+	Templatelimit             string                       `json:"templatelimit"`
+	Templatetotal             int64                        `json:"templatetotal"`
+	User                      []DisableAccountResponseUser `json:"user"`
+	Vmavailable               string                       `json:"vmavailable"`
+	Vmlimit                   string                       `json:"vmlimit"`
+	Vmrunning                 int                          `json:"vmrunning"`
+	Vmstopped                 int                          `json:"vmstopped"`
+	Vmtotal                   int64                        `json:"vmtotal"`
+	Volumeavailable           string                       `json:"volumeavailable"`
+	Volumelimit               string                       `json:"volumelimit"`
+	Volumetotal               int64                        `json:"volumetotal"`
+	Vpcavailable              string                       `json:"vpcavailable"`
+	Vpclimit                  string                       `json:"vpclimit"`
+	Vpctotal                  int64                        `json:"vpctotal"`
+}
+
+type DisableAccountResponseUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type EnableAccountParams struct {
@@ -797,83 +803,86 @@
 }
 
 type EnableAccountResponse struct {
-	Accountdetails            map[string]string `json:"accountdetails"`
-	Accounttype               int               `json:"accounttype"`
-	Cpuavailable              string            `json:"cpuavailable"`
-	Cpulimit                  string            `json:"cpulimit"`
-	Cputotal                  int64             `json:"cputotal"`
-	Defaultzoneid             string            `json:"defaultzoneid"`
-	Domain                    string            `json:"domain"`
-	Domainid                  string            `json:"domainid"`
-	Groups                    []string          `json:"groups"`
-	Id                        string            `json:"id"`
-	Ipavailable               string            `json:"ipavailable"`
-	Iplimit                   string            `json:"iplimit"`
-	Iptotal                   int64             `json:"iptotal"`
-	Iscleanuprequired         bool              `json:"iscleanuprequired"`
-	Isdefault                 bool              `json:"isdefault"`
-	Memoryavailable           string            `json:"memoryavailable"`
-	Memorylimit               string            `json:"memorylimit"`
-	Memorytotal               int64             `json:"memorytotal"`
-	Name                      string            `json:"name"`
-	Networkavailable          string            `json:"networkavailable"`
-	Networkdomain             string            `json:"networkdomain"`
-	Networklimit              string            `json:"networklimit"`
-	Networktotal              int64             `json:"networktotal"`
-	Primarystorageavailable   string            `json:"primarystorageavailable"`
-	Primarystoragelimit       string            `json:"primarystoragelimit"`
-	Primarystoragetotal       int64             `json:"primarystoragetotal"`
-	Projectavailable          string            `json:"projectavailable"`
-	Projectlimit              string            `json:"projectlimit"`
-	Projecttotal              int64             `json:"projecttotal"`
-	Receivedbytes             int64             `json:"receivedbytes"`
-	Roleid                    string            `json:"roleid"`
-	Rolename                  string            `json:"rolename"`
-	Roletype                  string            `json:"roletype"`
-	Secondarystorageavailable string            `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
-	Sentbytes                 int64             `json:"sentbytes"`
-	Snapshotavailable         string            `json:"snapshotavailable"`
-	Snapshotlimit             string            `json:"snapshotlimit"`
-	Snapshottotal             int64             `json:"snapshottotal"`
-	State                     string            `json:"state"`
-	Templateavailable         string            `json:"templateavailable"`
-	Templatelimit             string            `json:"templatelimit"`
-	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	Accountdetails            map[string]string           `json:"accountdetails"`
+	Accounttype               int                         `json:"accounttype"`
+	Cpuavailable              string                      `json:"cpuavailable"`
+	Cpulimit                  string                      `json:"cpulimit"`
+	Cputotal                  int64                       `json:"cputotal"`
+	Defaultzoneid             string                      `json:"defaultzoneid"`
+	Domain                    string                      `json:"domain"`
+	Domainid                  string                      `json:"domainid"`
+	Groups                    []string                    `json:"groups"`
+	Id                        string                      `json:"id"`
+	Ipavailable               string                      `json:"ipavailable"`
+	Iplimit                   string                      `json:"iplimit"`
+	Iptotal                   int64                       `json:"iptotal"`
+	Iscleanuprequired         bool                        `json:"iscleanuprequired"`
+	Isdefault                 bool                        `json:"isdefault"`
+	Memoryavailable           string                      `json:"memoryavailable"`
+	Memorylimit               string                      `json:"memorylimit"`
+	Memorytotal               int64                       `json:"memorytotal"`
+	Name                      string                      `json:"name"`
+	Networkavailable          string                      `json:"networkavailable"`
+	Networkdomain             string                      `json:"networkdomain"`
+	Networklimit              string                      `json:"networklimit"`
+	Networktotal              int64                       `json:"networktotal"`
+	Primarystorageavailable   string                      `json:"primarystorageavailable"`
+	Primarystoragelimit       string                      `json:"primarystoragelimit"`
+	Primarystoragetotal       int64                       `json:"primarystoragetotal"`
+	Projectavailable          string                      `json:"projectavailable"`
+	Projectlimit              string                      `json:"projectlimit"`
+	Projecttotal              int64                       `json:"projecttotal"`
+	Receivedbytes             int64                       `json:"receivedbytes"`
+	Roleid                    string                      `json:"roleid"`
+	Rolename                  string                      `json:"rolename"`
+	Roletype                  string                      `json:"roletype"`
+	Secondarystorageavailable string                      `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string                      `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64                     `json:"secondarystoragetotal"`
+	Sentbytes                 int64                       `json:"sentbytes"`
+	Snapshotavailable         string                      `json:"snapshotavailable"`
+	Snapshotlimit             string                      `json:"snapshotlimit"`
+	Snapshottotal             int64                       `json:"snapshottotal"`
+	State                     string                      `json:"state"`
+	Templateavailable         string                      `json:"templateavailable"`
+	Templatelimit             string                      `json:"templatelimit"`
+	Templatetotal             int64                       `json:"templatetotal"`
+	User                      []EnableAccountResponseUser `json:"user"`
+	Vmavailable               string                      `json:"vmavailable"`
+	Vmlimit                   string                      `json:"vmlimit"`
+	Vmrunning                 int                         `json:"vmrunning"`
+	Vmstopped                 int                         `json:"vmstopped"`
+	Vmtotal                   int64                       `json:"vmtotal"`
+	Volumeavailable           string                      `json:"volumeavailable"`
+	Volumelimit               string                      `json:"volumelimit"`
+	Volumetotal               int64                       `json:"volumetotal"`
+	Vpcavailable              string                      `json:"vpcavailable"`
+	Vpclimit                  string                      `json:"vpclimit"`
+	Vpctotal                  int64                       `json:"vpctotal"`
+}
+
+type EnableAccountResponseUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type GetSolidFireAccountIdParams struct {
@@ -1225,7 +1234,7 @@
 	Roletype                  string            `json:"roletype"`
 	Secondarystorageavailable string            `json:"secondarystorageavailable"`
 	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
+	Secondarystoragetotal     float64           `json:"secondarystoragetotal"`
 	Sentbytes                 int64             `json:"sentbytes"`
 	Snapshotavailable         string            `json:"snapshotavailable"`
 	Snapshotlimit             string            `json:"snapshotlimit"`
@@ -1234,39 +1243,42 @@
 	Templateavailable         string            `json:"templateavailable"`
 	Templatelimit             string            `json:"templatelimit"`
 	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	User                      []AccountUser     `json:"user"`
+	Vmavailable               string            `json:"vmavailable"`
+	Vmlimit                   string            `json:"vmlimit"`
+	Vmrunning                 int               `json:"vmrunning"`
+	Vmstopped                 int               `json:"vmstopped"`
+	Vmtotal                   int64             `json:"vmtotal"`
+	Volumeavailable           string            `json:"volumeavailable"`
+	Volumelimit               string            `json:"volumelimit"`
+	Volumetotal               int64             `json:"volumetotal"`
+	Vpcavailable              string            `json:"vpcavailable"`
+	Vpclimit                  string            `json:"vpclimit"`
+	Vpctotal                  int64             `json:"vpctotal"`
+}
+
+type AccountUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type ListProjectAccountsParams struct {
@@ -1416,60 +1428,63 @@
 }
 
 type ProjectAccount struct {
-	Account                   string `json:"account"`
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Displaytext               string `json:"displaytext"`
-	Domain                    string `json:"domain"`
-	Domainid                  string `json:"domainid"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Tags                      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Templateavailable string `json:"templateavailable"`
-	Templatelimit     string `json:"templatelimit"`
-	Templatetotal     int64  `json:"templatetotal"`
-	Vmavailable       string `json:"vmavailable"`
-	Vmlimit           string `json:"vmlimit"`
-	Vmrunning         int    `json:"vmrunning"`
-	Vmstopped         int    `json:"vmstopped"`
-	Vmtotal           int64  `json:"vmtotal"`
-	Volumeavailable   string `json:"volumeavailable"`
-	Volumelimit       string `json:"volumelimit"`
-	Volumetotal       int64  `json:"volumetotal"`
-	Vpcavailable      string `json:"vpcavailable"`
-	Vpclimit          string `json:"vpclimit"`
-	Vpctotal          int64  `json:"vpctotal"`
+	Account                   string  `json:"account"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Displaytext               string  `json:"displaytext"`
+	Domain                    string  `json:"domain"`
+	Domainid                  string  `json:"domainid"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectaccountname        string  `json:"projectaccountname"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Tags                      []Tags  `json:"tags"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmrunning                 int     `json:"vmrunning"`
+	Vmstopped                 int     `json:"vmstopped"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
+}
+
+type Tags struct {
+	Account      string `json:"account"`
+	Customer     string `json:"customer"`
+	Domain       string `json:"domain"`
+	Domainid     string `json:"domainid"`
+	Key          string `json:"key"`
+	Project      string `json:"project"`
+	Projectid    string `json:"projectid"`
+	Resourceid   string `json:"resourceid"`
+	Resourcetype string `json:"resourcetype"`
+	Value        string `json:"value"`
 }
 
 type LockAccountParams struct {
@@ -1532,83 +1547,86 @@
 }
 
 type LockAccountResponse struct {
-	Accountdetails            map[string]string `json:"accountdetails"`
-	Accounttype               int               `json:"accounttype"`
-	Cpuavailable              string            `json:"cpuavailable"`
-	Cpulimit                  string            `json:"cpulimit"`
-	Cputotal                  int64             `json:"cputotal"`
-	Defaultzoneid             string            `json:"defaultzoneid"`
-	Domain                    string            `json:"domain"`
-	Domainid                  string            `json:"domainid"`
-	Groups                    []string          `json:"groups"`
-	Id                        string            `json:"id"`
-	Ipavailable               string            `json:"ipavailable"`
-	Iplimit                   string            `json:"iplimit"`
-	Iptotal                   int64             `json:"iptotal"`
-	Iscleanuprequired         bool              `json:"iscleanuprequired"`
-	Isdefault                 bool              `json:"isdefault"`
-	Memoryavailable           string            `json:"memoryavailable"`
-	Memorylimit               string            `json:"memorylimit"`
-	Memorytotal               int64             `json:"memorytotal"`
-	Name                      string            `json:"name"`
-	Networkavailable          string            `json:"networkavailable"`
-	Networkdomain             string            `json:"networkdomain"`
-	Networklimit              string            `json:"networklimit"`
-	Networktotal              int64             `json:"networktotal"`
-	Primarystorageavailable   string            `json:"primarystorageavailable"`
-	Primarystoragelimit       string            `json:"primarystoragelimit"`
-	Primarystoragetotal       int64             `json:"primarystoragetotal"`
-	Projectavailable          string            `json:"projectavailable"`
-	Projectlimit              string            `json:"projectlimit"`
-	Projecttotal              int64             `json:"projecttotal"`
-	Receivedbytes             int64             `json:"receivedbytes"`
-	Roleid                    string            `json:"roleid"`
-	Rolename                  string            `json:"rolename"`
-	Roletype                  string            `json:"roletype"`
-	Secondarystorageavailable string            `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
-	Sentbytes                 int64             `json:"sentbytes"`
-	Snapshotavailable         string            `json:"snapshotavailable"`
-	Snapshotlimit             string            `json:"snapshotlimit"`
-	Snapshottotal             int64             `json:"snapshottotal"`
-	State                     string            `json:"state"`
-	Templateavailable         string            `json:"templateavailable"`
-	Templatelimit             string            `json:"templatelimit"`
-	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	Accountdetails            map[string]string         `json:"accountdetails"`
+	Accounttype               int                       `json:"accounttype"`
+	Cpuavailable              string                    `json:"cpuavailable"`
+	Cpulimit                  string                    `json:"cpulimit"`
+	Cputotal                  int64                     `json:"cputotal"`
+	Defaultzoneid             string                    `json:"defaultzoneid"`
+	Domain                    string                    `json:"domain"`
+	Domainid                  string                    `json:"domainid"`
+	Groups                    []string                  `json:"groups"`
+	Id                        string                    `json:"id"`
+	Ipavailable               string                    `json:"ipavailable"`
+	Iplimit                   string                    `json:"iplimit"`
+	Iptotal                   int64                     `json:"iptotal"`
+	Iscleanuprequired         bool                      `json:"iscleanuprequired"`
+	Isdefault                 bool                      `json:"isdefault"`
+	Memoryavailable           string                    `json:"memoryavailable"`
+	Memorylimit               string                    `json:"memorylimit"`
+	Memorytotal               int64                     `json:"memorytotal"`
+	Name                      string                    `json:"name"`
+	Networkavailable          string                    `json:"networkavailable"`
+	Networkdomain             string                    `json:"networkdomain"`
+	Networklimit              string                    `json:"networklimit"`
+	Networktotal              int64                     `json:"networktotal"`
+	Primarystorageavailable   string                    `json:"primarystorageavailable"`
+	Primarystoragelimit       string                    `json:"primarystoragelimit"`
+	Primarystoragetotal       int64                     `json:"primarystoragetotal"`
+	Projectavailable          string                    `json:"projectavailable"`
+	Projectlimit              string                    `json:"projectlimit"`
+	Projecttotal              int64                     `json:"projecttotal"`
+	Receivedbytes             int64                     `json:"receivedbytes"`
+	Roleid                    string                    `json:"roleid"`
+	Rolename                  string                    `json:"rolename"`
+	Roletype                  string                    `json:"roletype"`
+	Secondarystorageavailable string                    `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string                    `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64                   `json:"secondarystoragetotal"`
+	Sentbytes                 int64                     `json:"sentbytes"`
+	Snapshotavailable         string                    `json:"snapshotavailable"`
+	Snapshotlimit             string                    `json:"snapshotlimit"`
+	Snapshottotal             int64                     `json:"snapshottotal"`
+	State                     string                    `json:"state"`
+	Templateavailable         string                    `json:"templateavailable"`
+	Templatelimit             string                    `json:"templatelimit"`
+	Templatetotal             int64                     `json:"templatetotal"`
+	User                      []LockAccountResponseUser `json:"user"`
+	Vmavailable               string                    `json:"vmavailable"`
+	Vmlimit                   string                    `json:"vmlimit"`
+	Vmrunning                 int                       `json:"vmrunning"`
+	Vmstopped                 int                       `json:"vmstopped"`
+	Vmtotal                   int64                     `json:"vmtotal"`
+	Volumeavailable           string                    `json:"volumeavailable"`
+	Volumelimit               string                    `json:"volumelimit"`
+	Volumetotal               int64                     `json:"volumetotal"`
+	Vpcavailable              string                    `json:"vpcavailable"`
+	Vpclimit                  string                    `json:"vpclimit"`
+	Vpctotal                  int64                     `json:"vpctotal"`
+}
+
+type LockAccountResponseUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type MarkDefaultZoneForAccountParams struct {
@@ -1703,84 +1721,87 @@
 }
 
 type MarkDefaultZoneForAccountResponse struct {
-	JobID                     string            `json:"jobid"`
-	Accountdetails            map[string]string `json:"accountdetails"`
-	Accounttype               int               `json:"accounttype"`
-	Cpuavailable              string            `json:"cpuavailable"`
-	Cpulimit                  string            `json:"cpulimit"`
-	Cputotal                  int64             `json:"cputotal"`
-	Defaultzoneid             string            `json:"defaultzoneid"`
-	Domain                    string            `json:"domain"`
-	Domainid                  string            `json:"domainid"`
-	Groups                    []string          `json:"groups"`
-	Id                        string            `json:"id"`
-	Ipavailable               string            `json:"ipavailable"`
-	Iplimit                   string            `json:"iplimit"`
-	Iptotal                   int64             `json:"iptotal"`
-	Iscleanuprequired         bool              `json:"iscleanuprequired"`
-	Isdefault                 bool              `json:"isdefault"`
-	Memoryavailable           string            `json:"memoryavailable"`
-	Memorylimit               string            `json:"memorylimit"`
-	Memorytotal               int64             `json:"memorytotal"`
-	Name                      string            `json:"name"`
-	Networkavailable          string            `json:"networkavailable"`
-	Networkdomain             string            `json:"networkdomain"`
-	Networklimit              string            `json:"networklimit"`
-	Networktotal              int64             `json:"networktotal"`
-	Primarystorageavailable   string            `json:"primarystorageavailable"`
-	Primarystoragelimit       string            `json:"primarystoragelimit"`
-	Primarystoragetotal       int64             `json:"primarystoragetotal"`
-	Projectavailable          string            `json:"projectavailable"`
-	Projectlimit              string            `json:"projectlimit"`
-	Projecttotal              int64             `json:"projecttotal"`
-	Receivedbytes             int64             `json:"receivedbytes"`
-	Roleid                    string            `json:"roleid"`
-	Rolename                  string            `json:"rolename"`
-	Roletype                  string            `json:"roletype"`
-	Secondarystorageavailable string            `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
-	Sentbytes                 int64             `json:"sentbytes"`
-	Snapshotavailable         string            `json:"snapshotavailable"`
-	Snapshotlimit             string            `json:"snapshotlimit"`
-	Snapshottotal             int64             `json:"snapshottotal"`
-	State                     string            `json:"state"`
-	Templateavailable         string            `json:"templateavailable"`
-	Templatelimit             string            `json:"templatelimit"`
-	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	JobID                     string                                  `json:"jobid"`
+	Accountdetails            map[string]string                       `json:"accountdetails"`
+	Accounttype               int                                     `json:"accounttype"`
+	Cpuavailable              string                                  `json:"cpuavailable"`
+	Cpulimit                  string                                  `json:"cpulimit"`
+	Cputotal                  int64                                   `json:"cputotal"`
+	Defaultzoneid             string                                  `json:"defaultzoneid"`
+	Domain                    string                                  `json:"domain"`
+	Domainid                  string                                  `json:"domainid"`
+	Groups                    []string                                `json:"groups"`
+	Id                        string                                  `json:"id"`
+	Ipavailable               string                                  `json:"ipavailable"`
+	Iplimit                   string                                  `json:"iplimit"`
+	Iptotal                   int64                                   `json:"iptotal"`
+	Iscleanuprequired         bool                                    `json:"iscleanuprequired"`
+	Isdefault                 bool                                    `json:"isdefault"`
+	Memoryavailable           string                                  `json:"memoryavailable"`
+	Memorylimit               string                                  `json:"memorylimit"`
+	Memorytotal               int64                                   `json:"memorytotal"`
+	Name                      string                                  `json:"name"`
+	Networkavailable          string                                  `json:"networkavailable"`
+	Networkdomain             string                                  `json:"networkdomain"`
+	Networklimit              string                                  `json:"networklimit"`
+	Networktotal              int64                                   `json:"networktotal"`
+	Primarystorageavailable   string                                  `json:"primarystorageavailable"`
+	Primarystoragelimit       string                                  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64                                   `json:"primarystoragetotal"`
+	Projectavailable          string                                  `json:"projectavailable"`
+	Projectlimit              string                                  `json:"projectlimit"`
+	Projecttotal              int64                                   `json:"projecttotal"`
+	Receivedbytes             int64                                   `json:"receivedbytes"`
+	Roleid                    string                                  `json:"roleid"`
+	Rolename                  string                                  `json:"rolename"`
+	Roletype                  string                                  `json:"roletype"`
+	Secondarystorageavailable string                                  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string                                  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64                                 `json:"secondarystoragetotal"`
+	Sentbytes                 int64                                   `json:"sentbytes"`
+	Snapshotavailable         string                                  `json:"snapshotavailable"`
+	Snapshotlimit             string                                  `json:"snapshotlimit"`
+	Snapshottotal             int64                                   `json:"snapshottotal"`
+	State                     string                                  `json:"state"`
+	Templateavailable         string                                  `json:"templateavailable"`
+	Templatelimit             string                                  `json:"templatelimit"`
+	Templatetotal             int64                                   `json:"templatetotal"`
+	User                      []MarkDefaultZoneForAccountResponseUser `json:"user"`
+	Vmavailable               string                                  `json:"vmavailable"`
+	Vmlimit                   string                                  `json:"vmlimit"`
+	Vmrunning                 int                                     `json:"vmrunning"`
+	Vmstopped                 int                                     `json:"vmstopped"`
+	Vmtotal                   int64                                   `json:"vmtotal"`
+	Volumeavailable           string                                  `json:"volumeavailable"`
+	Volumelimit               string                                  `json:"volumelimit"`
+	Volumetotal               int64                                   `json:"volumetotal"`
+	Vpcavailable              string                                  `json:"vpcavailable"`
+	Vpclimit                  string                                  `json:"vpclimit"`
+	Vpctotal                  int64                                   `json:"vpctotal"`
+}
+
+type MarkDefaultZoneForAccountResponseUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type UpdateAccountParams struct {
@@ -1891,81 +1912,84 @@
 }
 
 type UpdateAccountResponse struct {
-	Accountdetails            map[string]string `json:"accountdetails"`
-	Accounttype               int               `json:"accounttype"`
-	Cpuavailable              string            `json:"cpuavailable"`
-	Cpulimit                  string            `json:"cpulimit"`
-	Cputotal                  int64             `json:"cputotal"`
-	Defaultzoneid             string            `json:"defaultzoneid"`
-	Domain                    string            `json:"domain"`
-	Domainid                  string            `json:"domainid"`
-	Groups                    []string          `json:"groups"`
-	Id                        string            `json:"id"`
-	Ipavailable               string            `json:"ipavailable"`
-	Iplimit                   string            `json:"iplimit"`
-	Iptotal                   int64             `json:"iptotal"`
-	Iscleanuprequired         bool              `json:"iscleanuprequired"`
-	Isdefault                 bool              `json:"isdefault"`
-	Memoryavailable           string            `json:"memoryavailable"`
-	Memorylimit               string            `json:"memorylimit"`
-	Memorytotal               int64             `json:"memorytotal"`
-	Name                      string            `json:"name"`
-	Networkavailable          string            `json:"networkavailable"`
-	Networkdomain             string            `json:"networkdomain"`
-	Networklimit              string            `json:"networklimit"`
-	Networktotal              int64             `json:"networktotal"`
-	Primarystorageavailable   string            `json:"primarystorageavailable"`
-	Primarystoragelimit       string            `json:"primarystoragelimit"`
-	Primarystoragetotal       int64             `json:"primarystoragetotal"`
-	Projectavailable          string            `json:"projectavailable"`
-	Projectlimit              string            `json:"projectlimit"`
-	Projecttotal              int64             `json:"projecttotal"`
-	Receivedbytes             int64             `json:"receivedbytes"`
-	Roleid                    string            `json:"roleid"`
-	Rolename                  string            `json:"rolename"`
-	Roletype                  string            `json:"roletype"`
-	Secondarystorageavailable string            `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
-	Sentbytes                 int64             `json:"sentbytes"`
-	Snapshotavailable         string            `json:"snapshotavailable"`
-	Snapshotlimit             string            `json:"snapshotlimit"`
-	Snapshottotal             int64             `json:"snapshottotal"`
-	State                     string            `json:"state"`
-	Templateavailable         string            `json:"templateavailable"`
-	Templatelimit             string            `json:"templatelimit"`
-	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	Accountdetails            map[string]string           `json:"accountdetails"`
+	Accounttype               int                         `json:"accounttype"`
+	Cpuavailable              string                      `json:"cpuavailable"`
+	Cpulimit                  string                      `json:"cpulimit"`
+	Cputotal                  int64                       `json:"cputotal"`
+	Defaultzoneid             string                      `json:"defaultzoneid"`
+	Domain                    string                      `json:"domain"`
+	Domainid                  string                      `json:"domainid"`
+	Groups                    []string                    `json:"groups"`
+	Id                        string                      `json:"id"`
+	Ipavailable               string                      `json:"ipavailable"`
+	Iplimit                   string                      `json:"iplimit"`
+	Iptotal                   int64                       `json:"iptotal"`
+	Iscleanuprequired         bool                        `json:"iscleanuprequired"`
+	Isdefault                 bool                        `json:"isdefault"`
+	Memoryavailable           string                      `json:"memoryavailable"`
+	Memorylimit               string                      `json:"memorylimit"`
+	Memorytotal               int64                       `json:"memorytotal"`
+	Name                      string                      `json:"name"`
+	Networkavailable          string                      `json:"networkavailable"`
+	Networkdomain             string                      `json:"networkdomain"`
+	Networklimit              string                      `json:"networklimit"`
+	Networktotal              int64                       `json:"networktotal"`
+	Primarystorageavailable   string                      `json:"primarystorageavailable"`
+	Primarystoragelimit       string                      `json:"primarystoragelimit"`
+	Primarystoragetotal       int64                       `json:"primarystoragetotal"`
+	Projectavailable          string                      `json:"projectavailable"`
+	Projectlimit              string                      `json:"projectlimit"`
+	Projecttotal              int64                       `json:"projecttotal"`
+	Receivedbytes             int64                       `json:"receivedbytes"`
+	Roleid                    string                      `json:"roleid"`
+	Rolename                  string                      `json:"rolename"`
+	Roletype                  string                      `json:"roletype"`
+	Secondarystorageavailable string                      `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string                      `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64                     `json:"secondarystoragetotal"`
+	Sentbytes                 int64                       `json:"sentbytes"`
+	Snapshotavailable         string                      `json:"snapshotavailable"`
+	Snapshotlimit             string                      `json:"snapshotlimit"`
+	Snapshottotal             int64                       `json:"snapshottotal"`
+	State                     string                      `json:"state"`
+	Templateavailable         string                      `json:"templateavailable"`
+	Templatelimit             string                      `json:"templatelimit"`
+	Templatetotal             int64                       `json:"templatetotal"`
+	User                      []UpdateAccountResponseUser `json:"user"`
+	Vmavailable               string                      `json:"vmavailable"`
+	Vmlimit                   string                      `json:"vmlimit"`
+	Vmrunning                 int                         `json:"vmrunning"`
+	Vmstopped                 int                         `json:"vmstopped"`
+	Vmtotal                   int64                       `json:"vmtotal"`
+	Volumeavailable           string                      `json:"volumeavailable"`
+	Volumelimit               string                      `json:"volumelimit"`
+	Volumetotal               int64                       `json:"volumetotal"`
+	Vpcavailable              string                      `json:"vpcavailable"`
+	Vpclimit                  string                      `json:"vpclimit"`
+	Vpctotal                  int64                       `json:"vpctotal"`
+}
+
+type UpdateAccountResponseUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AddressService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AddressService.go
index 3adee85..d0a61fc 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AddressService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AddressService.go
@@ -182,39 +182,28 @@
 }
 
 type AssociateIpAddressResponse struct {
-	JobID                 string `json:"jobid"`
-	Account               string `json:"account"`
-	Allocated             string `json:"allocated"`
-	Associatednetworkid   string `json:"associatednetworkid"`
-	Associatednetworkname string `json:"associatednetworkname"`
-	Domain                string `json:"domain"`
-	Domainid              string `json:"domainid"`
-	Fordisplay            bool   `json:"fordisplay"`
-	Forvirtualnetwork     bool   `json:"forvirtualnetwork"`
-	Id                    string `json:"id"`
-	Ipaddress             string `json:"ipaddress"`
-	Isportable            bool   `json:"isportable"`
-	Issourcenat           bool   `json:"issourcenat"`
-	Isstaticnat           bool   `json:"isstaticnat"`
-	Issystem              bool   `json:"issystem"`
-	Networkid             string `json:"networkid"`
-	Physicalnetworkid     string `json:"physicalnetworkid"`
-	Project               string `json:"project"`
-	Projectid             string `json:"projectid"`
-	Purpose               string `json:"purpose"`
-	State                 string `json:"state"`
-	Tags                  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                     string `json:"jobid"`
+	Account                   string `json:"account"`
+	Allocated                 string `json:"allocated"`
+	Associatednetworkid       string `json:"associatednetworkid"`
+	Associatednetworkname     string `json:"associatednetworkname"`
+	Domain                    string `json:"domain"`
+	Domainid                  string `json:"domainid"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Forvirtualnetwork         bool   `json:"forvirtualnetwork"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Isportable                bool   `json:"isportable"`
+	Issourcenat               bool   `json:"issourcenat"`
+	Isstaticnat               bool   `json:"isstaticnat"`
+	Issystem                  bool   `json:"issystem"`
+	Networkid                 string `json:"networkid"`
+	Physicalnetworkid         string `json:"physicalnetworkid"`
+	Project                   string `json:"project"`
+	Projectid                 string `json:"projectid"`
+	Purpose                   string `json:"purpose"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
@@ -636,38 +625,27 @@
 }
 
 type PublicIpAddress struct {
-	Account               string `json:"account"`
-	Allocated             string `json:"allocated"`
-	Associatednetworkid   string `json:"associatednetworkid"`
-	Associatednetworkname string `json:"associatednetworkname"`
-	Domain                string `json:"domain"`
-	Domainid              string `json:"domainid"`
-	Fordisplay            bool   `json:"fordisplay"`
-	Forvirtualnetwork     bool   `json:"forvirtualnetwork"`
-	Id                    string `json:"id"`
-	Ipaddress             string `json:"ipaddress"`
-	Isportable            bool   `json:"isportable"`
-	Issourcenat           bool   `json:"issourcenat"`
-	Isstaticnat           bool   `json:"isstaticnat"`
-	Issystem              bool   `json:"issystem"`
-	Networkid             string `json:"networkid"`
-	Physicalnetworkid     string `json:"physicalnetworkid"`
-	Project               string `json:"project"`
-	Projectid             string `json:"projectid"`
-	Purpose               string `json:"purpose"`
-	State                 string `json:"state"`
-	Tags                  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Account                   string `json:"account"`
+	Allocated                 string `json:"allocated"`
+	Associatednetworkid       string `json:"associatednetworkid"`
+	Associatednetworkname     string `json:"associatednetworkname"`
+	Domain                    string `json:"domain"`
+	Domainid                  string `json:"domainid"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Forvirtualnetwork         bool   `json:"forvirtualnetwork"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Isportable                bool   `json:"isportable"`
+	Issourcenat               bool   `json:"issourcenat"`
+	Isstaticnat               bool   `json:"isstaticnat"`
+	Issystem                  bool   `json:"issystem"`
+	Networkid                 string `json:"networkid"`
+	Physicalnetworkid         string `json:"physicalnetworkid"`
+	Project                   string `json:"project"`
+	Projectid                 string `json:"projectid"`
+	Purpose                   string `json:"purpose"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
@@ -770,39 +748,28 @@
 }
 
 type UpdateIpAddressResponse struct {
-	JobID                 string `json:"jobid"`
-	Account               string `json:"account"`
-	Allocated             string `json:"allocated"`
-	Associatednetworkid   string `json:"associatednetworkid"`
-	Associatednetworkname string `json:"associatednetworkname"`
-	Domain                string `json:"domain"`
-	Domainid              string `json:"domainid"`
-	Fordisplay            bool   `json:"fordisplay"`
-	Forvirtualnetwork     bool   `json:"forvirtualnetwork"`
-	Id                    string `json:"id"`
-	Ipaddress             string `json:"ipaddress"`
-	Isportable            bool   `json:"isportable"`
-	Issourcenat           bool   `json:"issourcenat"`
-	Isstaticnat           bool   `json:"isstaticnat"`
-	Issystem              bool   `json:"issystem"`
-	Networkid             string `json:"networkid"`
-	Physicalnetworkid     string `json:"physicalnetworkid"`
-	Project               string `json:"project"`
-	Projectid             string `json:"projectid"`
-	Purpose               string `json:"purpose"`
-	State                 string `json:"state"`
-	Tags                  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                     string `json:"jobid"`
+	Account                   string `json:"account"`
+	Allocated                 string `json:"allocated"`
+	Associatednetworkid       string `json:"associatednetworkid"`
+	Associatednetworkname     string `json:"associatednetworkname"`
+	Domain                    string `json:"domain"`
+	Domainid                  string `json:"domainid"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Forvirtualnetwork         bool   `json:"forvirtualnetwork"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Isportable                bool   `json:"isportable"`
+	Issourcenat               bool   `json:"issourcenat"`
+	Isstaticnat               bool   `json:"isstaticnat"`
+	Issystem                  bool   `json:"issystem"`
+	Networkid                 string `json:"networkid"`
+	Physicalnetworkid         string `json:"physicalnetworkid"`
+	Project                   string `json:"project"`
+	Projectid                 string `json:"projectid"`
+	Purpose                   string `json:"purpose"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AffinityGroupService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AffinityGroupService.go
index e0b2f22..d81b54d 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AffinityGroupService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AffinityGroupService.go
@@ -723,171 +723,109 @@
 }
 
 type UpdateVMAffinityGroupResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                       `json:"jobid"`
+	Account               string                                       `json:"account"`
+	Affinitygroup         []UpdateVMAffinityGroupResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                          `json:"cpunumber"`
+	Cpuspeed              int                                          `json:"cpuspeed"`
+	Cpuused               string                                       `json:"cpuused"`
+	Created               string                                       `json:"created"`
+	Details               map[string]string                            `json:"details"`
+	Diskioread            int64                                        `json:"diskioread"`
+	Diskiowrite           int64                                        `json:"diskiowrite"`
+	Diskkbsread           int64                                        `json:"diskkbsread"`
+	Diskkbswrite          int64                                        `json:"diskkbswrite"`
+	Diskofferingid        string                                       `json:"diskofferingid"`
+	Diskofferingname      string                                       `json:"diskofferingname"`
+	Displayname           string                                       `json:"displayname"`
+	Displayvm             bool                                         `json:"displayvm"`
+	Domain                string                                       `json:"domain"`
+	Domainid              string                                       `json:"domainid"`
+	Forvirtualnetwork     bool                                         `json:"forvirtualnetwork"`
+	Group                 string                                       `json:"group"`
+	Groupid               string                                       `json:"groupid"`
+	Guestosid             string                                       `json:"guestosid"`
+	Haenable              bool                                         `json:"haenable"`
+	Hostid                string                                       `json:"hostid"`
+	Hostname              string                                       `json:"hostname"`
+	Hypervisor            string                                       `json:"hypervisor"`
+	Id                    string                                       `json:"id"`
+	Instancename          string                                       `json:"instancename"`
+	Isdynamicallyscalable bool                                         `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                       `json:"isodisplaytext"`
+	Isoid                 string                                       `json:"isoid"`
+	Isoname               string                                       `json:"isoname"`
+	Keypair               string                                       `json:"keypair"`
+	Memory                int                                          `json:"memory"`
+	Memoryintfreekbs      int64                                        `json:"memoryintfreekbs"`
+	Memorykbs             int64                                        `json:"memorykbs"`
+	Memorytargetkbs       int64                                        `json:"memorytargetkbs"`
+	Name                  string                                       `json:"name"`
+	Networkkbsread        int64                                        `json:"networkkbsread"`
+	Networkkbswrite       int64                                        `json:"networkkbswrite"`
+	Nic                   []Nic                                        `json:"nic"`
+	Ostypeid              int64                                        `json:"ostypeid"`
+	Password              string                                       `json:"password"`
+	Passwordenabled       bool                                         `json:"passwordenabled"`
+	Project               string                                       `json:"project"`
+	Projectid             string                                       `json:"projectid"`
+	Publicip              string                                       `json:"publicip"`
+	Publicipid            string                                       `json:"publicipid"`
+	Rootdeviceid          int64                                        `json:"rootdeviceid"`
+	Rootdevicetype        string                                       `json:"rootdevicetype"`
+	Securitygroup         []UpdateVMAffinityGroupResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                       `json:"serviceofferingid"`
+	Serviceofferingname   string                                       `json:"serviceofferingname"`
+	Servicestate          string                                       `json:"servicestate"`
+	State                 string                                       `json:"state"`
+	Templatedisplaytext   string                                       `json:"templatedisplaytext"`
+	Templateid            string                                       `json:"templateid"`
+	Templatename          string                                       `json:"templatename"`
+	Userid                string                                       `json:"userid"`
+	Username              string                                       `json:"username"`
+	Vgpu                  string                                       `json:"vgpu"`
+	Zoneid                string                                       `json:"zoneid"`
+	Zonename              string                                       `json:"zonename"`
+}
+
+type UpdateVMAffinityGroupResponseSecuritygroup struct {
+	Account             string                                           `json:"account"`
+	Description         string                                           `json:"description"`
+	Domain              string                                           `json:"domain"`
+	Domainid            string                                           `json:"domainid"`
+	Egressrule          []UpdateVMAffinityGroupResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                           `json:"id"`
+	Ingressrule         []UpdateVMAffinityGroupResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                           `json:"name"`
+	Project             string                                           `json:"project"`
+	Projectid           string                                           `json:"projectid"`
+	Tags                []Tags                                           `json:"tags"`
+	Virtualmachinecount int                                              `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                    `json:"virtualmachineids"`
+}
+
+type UpdateVMAffinityGroupResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type UpdateVMAffinityGroupResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AlertService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AlertService.go
index b2b615d..e6fb541 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AlertService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AlertService.go
@@ -106,7 +106,26 @@
 
 type ArchiveAlertsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *ArchiveAlertsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias ArchiveAlertsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DeleteAlertsParams struct {
@@ -191,7 +210,26 @@
 
 type DeleteAlertsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteAlertsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteAlertsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type GenerateAlertParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AsyncjobService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AsyncjobService.go
index ea7f740..93c1fa0 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AsyncjobService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AsyncjobService.go
@@ -184,7 +184,7 @@
 	return u
 }
 
-func (p *QueryAsyncJobResultParams) SetJobid(v string) {
+func (p *QueryAsyncJobResultParams) SetJobID(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
 	}
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AuthenticationService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AuthenticationService.go
index eb505ed..7842d04 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/AuthenticationService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/AuthenticationService.go
@@ -105,17 +105,18 @@
 }
 
 type LoginResponse struct {
-	Account    string `json:"account"`
-	Domainid   string `json:"domainid"`
-	Firstname  string `json:"firstname"`
-	Lastname   string `json:"lastname"`
-	Registered string `json:"registered"`
-	Sessionkey string `json:"sessionkey"`
-	Timeout    int    `json:"timeout"`
-	Timezone   string `json:"timezone"`
-	Type       string `json:"type"`
-	Userid     string `json:"userid"`
-	Username   string `json:"username"`
+	Account        string `json:"account"`
+	Domainid       string `json:"domainid"`
+	Firstname      string `json:"firstname"`
+	Lastname       string `json:"lastname"`
+	Registered     string `json:"registered"`
+	Sessionkey     string `json:"sessionkey"`
+	Timeout        int    `json:"timeout"`
+	Timezone       string `json:"timezone"`
+	Timezoneoffset string `json:"timezoneoffset"`
+	Type           string `json:"type"`
+	Userid         string `json:"userid"`
+	Username       string `json:"username"`
 }
 
 type LogoutParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/BrocadeVCSService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/BrocadeVCSService.go
index 1390d29..2974767 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/BrocadeVCSService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/BrocadeVCSService.go
@@ -328,81 +328,78 @@
 }
 
 type BrocadeVcsDeviceNetwork struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
+	Account                     string                           `json:"account"`
+	Aclid                       string                           `json:"aclid"`
+	Acltype                     string                           `json:"acltype"`
+	Broadcastdomaintype         string                           `json:"broadcastdomaintype"`
+	Broadcasturi                string                           `json:"broadcasturi"`
+	Canusefordeploy             bool                             `json:"canusefordeploy"`
+	Cidr                        string                           `json:"cidr"`
+	Displaynetwork              bool                             `json:"displaynetwork"`
+	Displaytext                 string                           `json:"displaytext"`
+	Dns1                        string                           `json:"dns1"`
+	Dns2                        string                           `json:"dns2"`
+	Domain                      string                           `json:"domain"`
+	Domainid                    string                           `json:"domainid"`
+	Externalid                  string                           `json:"externalid"`
+	Gateway                     string                           `json:"gateway"`
+	Id                          string                           `json:"id"`
+	Ip6cidr                     string                           `json:"ip6cidr"`
+	Ip6gateway                  string                           `json:"ip6gateway"`
+	Isdefault                   bool                             `json:"isdefault"`
+	Ispersistent                bool                             `json:"ispersistent"`
+	Issystem                    bool                             `json:"issystem"`
+	Name                        string                           `json:"name"`
+	Netmask                     string                           `json:"netmask"`
+	Networkcidr                 string                           `json:"networkcidr"`
+	Networkdomain               string                           `json:"networkdomain"`
+	Networkofferingavailability string                           `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                             `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                           `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                           `json:"networkofferingid"`
+	Networkofferingname         string                           `json:"networkofferingname"`
+	Physicalnetworkid           string                           `json:"physicalnetworkid"`
+	Project                     string                           `json:"project"`
+	Projectid                   string                           `json:"projectid"`
+	Redundantrouter             bool                             `json:"redundantrouter"`
+	Related                     string                           `json:"related"`
+	Reservediprange             string                           `json:"reservediprange"`
+	Restartrequired             bool                             `json:"restartrequired"`
+	Service                     []BrocadeVcsDeviceNetworkService `json:"service"`
+	Specifyipranges             bool                             `json:"specifyipranges"`
+	State                       string                           `json:"state"`
+	Strechedl2subnet            bool                             `json:"strechedl2subnet"`
+	Subdomainaccess             bool                             `json:"subdomainaccess"`
+	Tags                        []Tags                           `json:"tags"`
+	Traffictype                 string                           `json:"traffictype"`
+	Type                        string                           `json:"type"`
+	Vlan                        string                           `json:"vlan"`
+	Vpcid                       string                           `json:"vpcid"`
+	Zoneid                      string                           `json:"zoneid"`
+	Zonename                    string                           `json:"zonename"`
+	Zonesnetworkspans           []interface{}                    `json:"zonesnetworkspans"`
+}
+
+type BrocadeVcsDeviceNetworkService struct {
+	Capability []BrocadeVcsDeviceNetworkServiceCapability `json:"capability"`
+	Name       string                                     `json:"name"`
+	Provider   []BrocadeVcsDeviceNetworkServiceProvider   `json:"provider"`
+}
+
+type BrocadeVcsDeviceNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type BrocadeVcsDeviceNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type ListBrocadeVcsDevicesParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ClusterService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ClusterService.go
index ec4b669..8ad5cfc 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ClusterService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ClusterService.go
@@ -274,32 +274,36 @@
 }
 
 type AddClusterResponse struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
-	Clustertype           string            `json:"clustertype"`
-	Cpuovercommitratio    string            `json:"cpuovercommitratio"`
-	Hypervisortype        string            `json:"hypervisortype"`
-	Id                    string            `json:"id"`
-	Managedstate          string            `json:"managedstate"`
-	Memoryovercommitratio string            `json:"memoryovercommitratio"`
-	Name                  string            `json:"name"`
-	Ovm3vip               string            `json:"ovm3vip"`
-	Podid                 string            `json:"podid"`
-	Podname               string            `json:"podname"`
-	Resourcedetails       map[string]string `json:"resourcedetails"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	Allocationstate       string                       `json:"allocationstate"`
+	Capacity              []AddClusterResponseCapacity `json:"capacity"`
+	Clustertype           string                       `json:"clustertype"`
+	Cpuovercommitratio    string                       `json:"cpuovercommitratio"`
+	Hypervisortype        string                       `json:"hypervisortype"`
+	Id                    string                       `json:"id"`
+	Managedstate          string                       `json:"managedstate"`
+	Memoryovercommitratio string                       `json:"memoryovercommitratio"`
+	Name                  string                       `json:"name"`
+	Ovm3vip               string                       `json:"ovm3vip"`
+	Podid                 string                       `json:"podid"`
+	Podname               string                       `json:"podname"`
+	Resourcedetails       map[string]string            `json:"resourcedetails"`
+	Zoneid                string                       `json:"zoneid"`
+	Zonename              string                       `json:"zonename"`
+}
+
+type AddClusterResponseCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
 
 type DedicateClusterParams struct {
@@ -451,7 +455,26 @@
 
 type DeleteClusterResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteClusterResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteClusterResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DisableOutOfBandManagementForClusterParams struct {
@@ -877,19 +900,8 @@
 }
 
 type Cluster struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
+	Allocationstate       string            `json:"allocationstate"`
+	Capacity              []ClusterCapacity `json:"capacity"`
 	Clustertype           string            `json:"clustertype"`
 	Cpuovercommitratio    string            `json:"cpuovercommitratio"`
 	Hypervisortype        string            `json:"hypervisortype"`
@@ -905,6 +917,21 @@
 	Zonename              string            `json:"zonename"`
 }
 
+type ClusterCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
+}
+
 type ListDedicatedClustersParams struct {
 	p map[string]interface{}
 }
@@ -1204,30 +1231,34 @@
 }
 
 type UpdateClusterResponse struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
-	Clustertype           string            `json:"clustertype"`
-	Cpuovercommitratio    string            `json:"cpuovercommitratio"`
-	Hypervisortype        string            `json:"hypervisortype"`
-	Id                    string            `json:"id"`
-	Managedstate          string            `json:"managedstate"`
-	Memoryovercommitratio string            `json:"memoryovercommitratio"`
-	Name                  string            `json:"name"`
-	Ovm3vip               string            `json:"ovm3vip"`
-	Podid                 string            `json:"podid"`
-	Podname               string            `json:"podname"`
-	Resourcedetails       map[string]string `json:"resourcedetails"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	Allocationstate       string                          `json:"allocationstate"`
+	Capacity              []UpdateClusterResponseCapacity `json:"capacity"`
+	Clustertype           string                          `json:"clustertype"`
+	Cpuovercommitratio    string                          `json:"cpuovercommitratio"`
+	Hypervisortype        string                          `json:"hypervisortype"`
+	Id                    string                          `json:"id"`
+	Managedstate          string                          `json:"managedstate"`
+	Memoryovercommitratio string                          `json:"memoryovercommitratio"`
+	Name                  string                          `json:"name"`
+	Ovm3vip               string                          `json:"ovm3vip"`
+	Podid                 string                          `json:"podid"`
+	Podname               string                          `json:"podname"`
+	Resourcedetails       map[string]string               `json:"resourcedetails"`
+	Zoneid                string                          `json:"zoneid"`
+	Zonename              string                          `json:"zonename"`
+}
+
+type UpdateClusterResponseCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ConfigurationService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ConfigurationService.go
index 7df900b..2f87a3c 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ConfigurationService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ConfigurationService.go
@@ -98,6 +98,12 @@
 	if v, found := p.p["clusterid"]; found {
 		u.Set("clusterid", v.(string))
 	}
+	if v, found := p.p["domainid"]; found {
+		u.Set("domainid", v.(string))
+	}
+	if v, found := p.p["imagestoreuuid"]; found {
+		u.Set("imagestoreuuid", v.(string))
+	}
 	if v, found := p.p["keyword"]; found {
 		u.Set("keyword", v.(string))
 	}
@@ -145,6 +151,22 @@
 	return
 }
 
+func (p *ListConfigurationsParams) SetDomainid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["domainid"] = v
+	return
+}
+
+func (p *ListConfigurationsParams) SetImagestoreuuid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["imagestoreuuid"] = v
+	return
+}
+
 func (p *ListConfigurationsParams) SetKeyword(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -324,6 +346,12 @@
 	if v, found := p.p["clusterid"]; found {
 		u.Set("clusterid", v.(string))
 	}
+	if v, found := p.p["domainid"]; found {
+		u.Set("domainid", v.(string))
+	}
+	if v, found := p.p["imagestoreuuid"]; found {
+		u.Set("imagestoreuuid", v.(string))
+	}
 	if v, found := p.p["name"]; found {
 		u.Set("name", v.(string))
 	}
@@ -355,6 +383,22 @@
 	return
 }
 
+func (p *UpdateConfigurationParams) SetDomainid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["domainid"] = v
+	return
+}
+
+func (p *UpdateConfigurationParams) SetImagestoreuuid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["imagestoreuuid"] = v
+	return
+}
+
 func (p *UpdateConfigurationParams) SetName(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/DiskOfferingService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/DiskOfferingService.go
index efd5042..9e529ee 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/DiskOfferingService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/DiskOfferingService.go
@@ -332,7 +332,26 @@
 
 type DeleteDiskOfferingResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteDiskOfferingResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteDiskOfferingResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListDiskOfferingsParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/DomainService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/DomainService.go
index 114058f..5aff993 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/DomainService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/DomainService.go
@@ -105,51 +105,51 @@
 }
 
 type CreateDomainResponse struct {
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Haschild                  bool   `json:"haschild"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Level                     int    `json:"level"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networkdomain             string `json:"networkdomain"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Parentdomainid            string `json:"parentdomainid"`
-	Parentdomainname          string `json:"parentdomainname"`
-	Path                      string `json:"path"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Projectavailable          string `json:"projectavailable"`
-	Projectlimit              string `json:"projectlimit"`
-	Projecttotal              int64  `json:"projecttotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Templateavailable         string `json:"templateavailable"`
-	Templatelimit             string `json:"templatelimit"`
-	Templatetotal             int64  `json:"templatetotal"`
-	Vmavailable               string `json:"vmavailable"`
-	Vmlimit                   string `json:"vmlimit"`
-	Vmtotal                   int64  `json:"vmtotal"`
-	Volumeavailable           string `json:"volumeavailable"`
-	Volumelimit               string `json:"volumelimit"`
-	Volumetotal               int64  `json:"volumetotal"`
-	Vpcavailable              string `json:"vpcavailable"`
-	Vpclimit                  string `json:"vpclimit"`
-	Vpctotal                  int64  `json:"vpctotal"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Haschild                  bool    `json:"haschild"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Level                     int     `json:"level"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networkdomain             string  `json:"networkdomain"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Parentdomainid            string  `json:"parentdomainid"`
+	Parentdomainname          string  `json:"parentdomainname"`
+	Path                      string  `json:"path"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectavailable          string  `json:"projectavailable"`
+	Projectlimit              string  `json:"projectlimit"`
+	Projecttotal              int64   `json:"projecttotal"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type DeleteDomainParams struct {
@@ -437,51 +437,51 @@
 }
 
 type DomainChildren struct {
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Haschild                  bool   `json:"haschild"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Level                     int    `json:"level"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networkdomain             string `json:"networkdomain"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Parentdomainid            string `json:"parentdomainid"`
-	Parentdomainname          string `json:"parentdomainname"`
-	Path                      string `json:"path"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Projectavailable          string `json:"projectavailable"`
-	Projectlimit              string `json:"projectlimit"`
-	Projecttotal              int64  `json:"projecttotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Templateavailable         string `json:"templateavailable"`
-	Templatelimit             string `json:"templatelimit"`
-	Templatetotal             int64  `json:"templatetotal"`
-	Vmavailable               string `json:"vmavailable"`
-	Vmlimit                   string `json:"vmlimit"`
-	Vmtotal                   int64  `json:"vmtotal"`
-	Volumeavailable           string `json:"volumeavailable"`
-	Volumelimit               string `json:"volumelimit"`
-	Volumetotal               int64  `json:"volumetotal"`
-	Vpcavailable              string `json:"vpcavailable"`
-	Vpclimit                  string `json:"vpclimit"`
-	Vpctotal                  int64  `json:"vpctotal"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Haschild                  bool    `json:"haschild"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Level                     int     `json:"level"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networkdomain             string  `json:"networkdomain"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Parentdomainid            string  `json:"parentdomainid"`
+	Parentdomainname          string  `json:"parentdomainname"`
+	Path                      string  `json:"path"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectavailable          string  `json:"projectavailable"`
+	Projectlimit              string  `json:"projectlimit"`
+	Projecttotal              int64   `json:"projecttotal"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type ListDomainsParams struct {
@@ -493,6 +493,10 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["details"]; found {
+		vv := strings.Join(v.([]string), ",")
+		u.Set("details", vv)
+	}
 	if v, found := p.p["id"]; found {
 		u.Set("id", v.(string))
 	}
@@ -521,6 +525,14 @@
 	return u
 }
 
+func (p *ListDomainsParams) SetDetails(v []string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["details"] = v
+	return
+}
+
 func (p *ListDomainsParams) SetId(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -689,51 +701,51 @@
 }
 
 type Domain struct {
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Haschild                  bool   `json:"haschild"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Level                     int    `json:"level"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networkdomain             string `json:"networkdomain"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Parentdomainid            string `json:"parentdomainid"`
-	Parentdomainname          string `json:"parentdomainname"`
-	Path                      string `json:"path"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Projectavailable          string `json:"projectavailable"`
-	Projectlimit              string `json:"projectlimit"`
-	Projecttotal              int64  `json:"projecttotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Templateavailable         string `json:"templateavailable"`
-	Templatelimit             string `json:"templatelimit"`
-	Templatetotal             int64  `json:"templatetotal"`
-	Vmavailable               string `json:"vmavailable"`
-	Vmlimit                   string `json:"vmlimit"`
-	Vmtotal                   int64  `json:"vmtotal"`
-	Volumeavailable           string `json:"volumeavailable"`
-	Volumelimit               string `json:"volumelimit"`
-	Volumetotal               int64  `json:"volumetotal"`
-	Vpcavailable              string `json:"vpcavailable"`
-	Vpclimit                  string `json:"vpclimit"`
-	Vpctotal                  int64  `json:"vpctotal"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Haschild                  bool    `json:"haschild"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Level                     int     `json:"level"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networkdomain             string  `json:"networkdomain"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Parentdomainid            string  `json:"parentdomainid"`
+	Parentdomainname          string  `json:"parentdomainname"`
+	Path                      string  `json:"path"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectavailable          string  `json:"projectavailable"`
+	Projectlimit              string  `json:"projectlimit"`
+	Projecttotal              int64   `json:"projecttotal"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type UpdateDomainParams struct {
@@ -806,49 +818,49 @@
 }
 
 type UpdateDomainResponse struct {
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Haschild                  bool   `json:"haschild"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Level                     int    `json:"level"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networkdomain             string `json:"networkdomain"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Parentdomainid            string `json:"parentdomainid"`
-	Parentdomainname          string `json:"parentdomainname"`
-	Path                      string `json:"path"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Projectavailable          string `json:"projectavailable"`
-	Projectlimit              string `json:"projectlimit"`
-	Projecttotal              int64  `json:"projecttotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Templateavailable         string `json:"templateavailable"`
-	Templatelimit             string `json:"templatelimit"`
-	Templatetotal             int64  `json:"templatetotal"`
-	Vmavailable               string `json:"vmavailable"`
-	Vmlimit                   string `json:"vmlimit"`
-	Vmtotal                   int64  `json:"vmtotal"`
-	Volumeavailable           string `json:"volumeavailable"`
-	Volumelimit               string `json:"volumelimit"`
-	Volumetotal               int64  `json:"volumetotal"`
-	Vpcavailable              string `json:"vpcavailable"`
-	Vpclimit                  string `json:"vpclimit"`
-	Vpctotal                  int64  `json:"vpctotal"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Haschild                  bool    `json:"haschild"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Level                     int     `json:"level"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networkdomain             string  `json:"networkdomain"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Parentdomainid            string  `json:"parentdomainid"`
+	Parentdomainname          string  `json:"parentdomainname"`
+	Path                      string  `json:"path"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectavailable          string  `json:"projectavailable"`
+	Projectlimit              string  `json:"projectlimit"`
+	Projecttotal              int64   `json:"projecttotal"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/EventService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/EventService.go
index 6b27cba..f1cd41c 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/EventService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/EventService.go
@@ -106,7 +106,26 @@
 
 type ArchiveEventsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *ArchiveEventsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias ArchiveEventsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DeleteEventsParams struct {
@@ -191,7 +210,26 @@
 
 type DeleteEventsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteEventsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteEventsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListEventTypesParams struct {
@@ -295,6 +333,9 @@
 	if v, found := p.p["startdate"]; found {
 		u.Set("startdate", v.(string))
 	}
+	if v, found := p.p["startid"]; found {
+		u.Set("startid", v.(string))
+	}
 	if v, found := p.p["type"]; found {
 		u.Set("type", v.(string))
 	}
@@ -413,6 +454,14 @@
 	return
 }
 
+func (p *ListEventsParams) SetStartid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["startid"] = v
+	return
+}
+
 func (p *ListEventsParams) SetType(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtFirewallService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtFirewallService.go
index c1407ff..4676b3e 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtFirewallService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtFirewallService.go
@@ -15,259 +15,3 @@
 //
 
 package cloudstack
-
-import (
-	"encoding/json"
-	"net/url"
-	"strconv"
-)
-
-type AddExternalFirewallParams struct {
-	p map[string]interface{}
-}
-
-func (p *AddExternalFirewallParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["password"]; found {
-		u.Set("password", v.(string))
-	}
-	if v, found := p.p["url"]; found {
-		u.Set("url", v.(string))
-	}
-	if v, found := p.p["username"]; found {
-		u.Set("username", v.(string))
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *AddExternalFirewallParams) SetPassword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["password"] = v
-	return
-}
-
-func (p *AddExternalFirewallParams) SetUrl(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["url"] = v
-	return
-}
-
-func (p *AddExternalFirewallParams) SetUsername(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["username"] = v
-	return
-}
-
-func (p *AddExternalFirewallParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new AddExternalFirewallParams instance,
-// as then you are sure you have configured all required params
-func (s *ExtFirewallService) NewAddExternalFirewallParams(password string, url string, username string, zoneid string) *AddExternalFirewallParams {
-	p := &AddExternalFirewallParams{}
-	p.p = make(map[string]interface{})
-	p.p["password"] = password
-	p.p["url"] = url
-	p.p["username"] = username
-	p.p["zoneid"] = zoneid
-	return p
-}
-
-// Adds an external firewall appliance
-func (s *ExtFirewallService) AddExternalFirewall(p *AddExternalFirewallParams) (*AddExternalFirewallResponse, error) {
-	resp, err := s.cs.newRequest("addExternalFirewall", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r AddExternalFirewallResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type AddExternalFirewallResponse struct {
-	Id               string `json:"id"`
-	Ipaddress        string `json:"ipaddress"`
-	Numretries       string `json:"numretries"`
-	Privateinterface string `json:"privateinterface"`
-	Privatezone      string `json:"privatezone"`
-	Publicinterface  string `json:"publicinterface"`
-	Publiczone       string `json:"publiczone"`
-	Timeout          string `json:"timeout"`
-	Usageinterface   string `json:"usageinterface"`
-	Username         string `json:"username"`
-	Zoneid           string `json:"zoneid"`
-}
-
-type DeleteExternalFirewallParams struct {
-	p map[string]interface{}
-}
-
-func (p *DeleteExternalFirewallParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["id"]; found {
-		u.Set("id", v.(string))
-	}
-	return u
-}
-
-func (p *DeleteExternalFirewallParams) SetId(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["id"] = v
-	return
-}
-
-// You should always use this function to get a new DeleteExternalFirewallParams instance,
-// as then you are sure you have configured all required params
-func (s *ExtFirewallService) NewDeleteExternalFirewallParams(id string) *DeleteExternalFirewallParams {
-	p := &DeleteExternalFirewallParams{}
-	p.p = make(map[string]interface{})
-	p.p["id"] = id
-	return p
-}
-
-// Deletes an external firewall appliance.
-func (s *ExtFirewallService) DeleteExternalFirewall(p *DeleteExternalFirewallParams) (*DeleteExternalFirewallResponse, error) {
-	resp, err := s.cs.newRequest("deleteExternalFirewall", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DeleteExternalFirewallResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type DeleteExternalFirewallResponse struct {
-	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
-}
-
-type ListExternalFirewallsParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListExternalFirewallsParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *ListExternalFirewallsParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListExternalFirewallsParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListExternalFirewallsParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListExternalFirewallsParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new ListExternalFirewallsParams instance,
-// as then you are sure you have configured all required params
-func (s *ExtFirewallService) NewListExternalFirewallsParams(zoneid string) *ListExternalFirewallsParams {
-	p := &ListExternalFirewallsParams{}
-	p.p = make(map[string]interface{})
-	p.p["zoneid"] = zoneid
-	return p
-}
-
-// List external firewall appliances.
-func (s *ExtFirewallService) ListExternalFirewalls(p *ListExternalFirewallsParams) (*ListExternalFirewallsResponse, error) {
-	resp, err := s.cs.newRequest("listExternalFirewalls", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListExternalFirewallsResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListExternalFirewallsResponse struct {
-	Count             int                 `json:"count"`
-	ExternalFirewalls []*ExternalFirewall `json:"externalfirewall"`
-}
-
-type ExternalFirewall struct {
-	Id               string `json:"id"`
-	Ipaddress        string `json:"ipaddress"`
-	Numretries       string `json:"numretries"`
-	Privateinterface string `json:"privateinterface"`
-	Privatezone      string `json:"privatezone"`
-	Publicinterface  string `json:"publicinterface"`
-	Publiczone       string `json:"publiczone"`
-	Timeout          string `json:"timeout"`
-	Usageinterface   string `json:"usageinterface"`
-	Username         string `json:"username"`
-	Zoneid           string `json:"zoneid"`
-}
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtLoadBalancerService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtLoadBalancerService.go
index 523301a..4676b3e 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtLoadBalancerService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExtLoadBalancerService.go
@@ -15,339 +15,3 @@
 //
 
 package cloudstack
-
-import (
-	"encoding/json"
-	"fmt"
-	"net/url"
-	"strconv"
-)
-
-type AddExternalLoadBalancerParams struct {
-	p map[string]interface{}
-}
-
-func (p *AddExternalLoadBalancerParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["password"]; found {
-		u.Set("password", v.(string))
-	}
-	if v, found := p.p["url"]; found {
-		u.Set("url", v.(string))
-	}
-	if v, found := p.p["username"]; found {
-		u.Set("username", v.(string))
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *AddExternalLoadBalancerParams) SetPassword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["password"] = v
-	return
-}
-
-func (p *AddExternalLoadBalancerParams) SetUrl(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["url"] = v
-	return
-}
-
-func (p *AddExternalLoadBalancerParams) SetUsername(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["username"] = v
-	return
-}
-
-func (p *AddExternalLoadBalancerParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new AddExternalLoadBalancerParams instance,
-// as then you are sure you have configured all required params
-func (s *ExtLoadBalancerService) NewAddExternalLoadBalancerParams(password string, url string, username string, zoneid string) *AddExternalLoadBalancerParams {
-	p := &AddExternalLoadBalancerParams{}
-	p.p = make(map[string]interface{})
-	p.p["password"] = password
-	p.p["url"] = url
-	p.p["username"] = username
-	p.p["zoneid"] = zoneid
-	return p
-}
-
-// Adds F5 external load balancer appliance.
-func (s *ExtLoadBalancerService) AddExternalLoadBalancer(p *AddExternalLoadBalancerParams) (*AddExternalLoadBalancerResponse, error) {
-	resp, err := s.cs.newRequest("addExternalLoadBalancer", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r AddExternalLoadBalancerResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type AddExternalLoadBalancerResponse struct {
-	Id               string `json:"id"`
-	Ipaddress        string `json:"ipaddress"`
-	Numretries       string `json:"numretries"`
-	Privateinterface string `json:"privateinterface"`
-	Publicinterface  string `json:"publicinterface"`
-	Username         string `json:"username"`
-	Zoneid           string `json:"zoneid"`
-}
-
-type DeleteExternalLoadBalancerParams struct {
-	p map[string]interface{}
-}
-
-func (p *DeleteExternalLoadBalancerParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["id"]; found {
-		u.Set("id", v.(string))
-	}
-	return u
-}
-
-func (p *DeleteExternalLoadBalancerParams) SetId(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["id"] = v
-	return
-}
-
-// You should always use this function to get a new DeleteExternalLoadBalancerParams instance,
-// as then you are sure you have configured all required params
-func (s *ExtLoadBalancerService) NewDeleteExternalLoadBalancerParams(id string) *DeleteExternalLoadBalancerParams {
-	p := &DeleteExternalLoadBalancerParams{}
-	p.p = make(map[string]interface{})
-	p.p["id"] = id
-	return p
-}
-
-// Deletes a F5 external load balancer appliance added in a zone.
-func (s *ExtLoadBalancerService) DeleteExternalLoadBalancer(p *DeleteExternalLoadBalancerParams) (*DeleteExternalLoadBalancerResponse, error) {
-	resp, err := s.cs.newRequest("deleteExternalLoadBalancer", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DeleteExternalLoadBalancerResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type DeleteExternalLoadBalancerResponse struct {
-	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
-}
-
-type ListExternalLoadBalancersParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListExternalLoadBalancersParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *ListExternalLoadBalancersParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListExternalLoadBalancersParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListExternalLoadBalancersParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListExternalLoadBalancersParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new ListExternalLoadBalancersParams instance,
-// as then you are sure you have configured all required params
-func (s *ExtLoadBalancerService) NewListExternalLoadBalancersParams() *ListExternalLoadBalancersParams {
-	p := &ListExternalLoadBalancersParams{}
-	p.p = make(map[string]interface{})
-	return p
-}
-
-// This is a courtesy helper function, which in some cases may not work as expected!
-func (s *ExtLoadBalancerService) GetExternalLoadBalancerID(keyword string, opts ...OptionFunc) (string, int, error) {
-	p := &ListExternalLoadBalancersParams{}
-	p.p = make(map[string]interface{})
-
-	p.p["keyword"] = keyword
-
-	for _, fn := range append(s.cs.options, opts...) {
-		if err := fn(s.cs, p); err != nil {
-			return "", -1, err
-		}
-	}
-
-	l, err := s.ListExternalLoadBalancers(p)
-	if err != nil {
-		return "", -1, err
-	}
-
-	if l.Count == 0 {
-		return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l)
-	}
-
-	if l.Count == 1 {
-		return l.ExternalLoadBalancers[0].Id, l.Count, nil
-	}
-
-	if l.Count > 1 {
-		for _, v := range l.ExternalLoadBalancers {
-			if v.Name == keyword {
-				return v.Id, l.Count, nil
-			}
-		}
-	}
-	return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l)
-}
-
-// Lists F5 external load balancer appliances added in a zone.
-func (s *ExtLoadBalancerService) ListExternalLoadBalancers(p *ListExternalLoadBalancersParams) (*ListExternalLoadBalancersResponse, error) {
-	resp, err := s.cs.newRequest("listExternalLoadBalancers", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListExternalLoadBalancersResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListExternalLoadBalancersResponse struct {
-	Count                 int                     `json:"count"`
-	ExternalLoadBalancers []*ExternalLoadBalancer `json:"externalloadbalancer"`
-}
-
-type ExternalLoadBalancer struct {
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
-}
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExternalDeviceService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExternalDeviceService.go
index 6834122..4676b3e 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExternalDeviceService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ExternalDeviceService.go
@@ -15,839 +15,3 @@
 //
 
 package cloudstack
-
-import (
-	"encoding/json"
-	"net/url"
-	"strconv"
-)
-
-type AddCiscoAsa1000vResourceParams struct {
-	p map[string]interface{}
-}
-
-func (p *AddCiscoAsa1000vResourceParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["clusterid"]; found {
-		u.Set("clusterid", v.(string))
-	}
-	if v, found := p.p["hostname"]; found {
-		u.Set("hostname", v.(string))
-	}
-	if v, found := p.p["insideportprofile"]; found {
-		u.Set("insideportprofile", v.(string))
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	return u
-}
-
-func (p *AddCiscoAsa1000vResourceParams) SetClusterid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["clusterid"] = v
-	return
-}
-
-func (p *AddCiscoAsa1000vResourceParams) SetHostname(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["hostname"] = v
-	return
-}
-
-func (p *AddCiscoAsa1000vResourceParams) SetInsideportprofile(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["insideportprofile"] = v
-	return
-}
-
-func (p *AddCiscoAsa1000vResourceParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-// You should always use this function to get a new AddCiscoAsa1000vResourceParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewAddCiscoAsa1000vResourceParams(clusterid string, hostname string, insideportprofile string, physicalnetworkid string) *AddCiscoAsa1000vResourceParams {
-	p := &AddCiscoAsa1000vResourceParams{}
-	p.p = make(map[string]interface{})
-	p.p["clusterid"] = clusterid
-	p.p["hostname"] = hostname
-	p.p["insideportprofile"] = insideportprofile
-	p.p["physicalnetworkid"] = physicalnetworkid
-	return p
-}
-
-// Adds a Cisco Asa 1000v appliance
-func (s *ExternalDeviceService) AddCiscoAsa1000vResource(p *AddCiscoAsa1000vResourceParams) (*AddCiscoAsa1000vResourceResponse, error) {
-	resp, err := s.cs.newRequest("addCiscoAsa1000vResource", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r AddCiscoAsa1000vResourceResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type AddCiscoAsa1000vResourceResponse struct {
-}
-
-type AddCiscoVnmcResourceParams struct {
-	p map[string]interface{}
-}
-
-func (p *AddCiscoVnmcResourceParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["hostname"]; found {
-		u.Set("hostname", v.(string))
-	}
-	if v, found := p.p["password"]; found {
-		u.Set("password", v.(string))
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	if v, found := p.p["username"]; found {
-		u.Set("username", v.(string))
-	}
-	return u
-}
-
-func (p *AddCiscoVnmcResourceParams) SetHostname(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["hostname"] = v
-	return
-}
-
-func (p *AddCiscoVnmcResourceParams) SetPassword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["password"] = v
-	return
-}
-
-func (p *AddCiscoVnmcResourceParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-func (p *AddCiscoVnmcResourceParams) SetUsername(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["username"] = v
-	return
-}
-
-// You should always use this function to get a new AddCiscoVnmcResourceParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewAddCiscoVnmcResourceParams(hostname string, password string, physicalnetworkid string, username string) *AddCiscoVnmcResourceParams {
-	p := &AddCiscoVnmcResourceParams{}
-	p.p = make(map[string]interface{})
-	p.p["hostname"] = hostname
-	p.p["password"] = password
-	p.p["physicalnetworkid"] = physicalnetworkid
-	p.p["username"] = username
-	return p
-}
-
-// Adds a Cisco Vnmc Controller
-func (s *ExternalDeviceService) AddCiscoVnmcResource(p *AddCiscoVnmcResourceParams) (*AddCiscoVnmcResourceResponse, error) {
-	resp, err := s.cs.newRequest("addCiscoVnmcResource", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r AddCiscoVnmcResourceResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type AddCiscoVnmcResourceResponse struct {
-}
-
-type DeleteCiscoAsa1000vResourceParams struct {
-	p map[string]interface{}
-}
-
-func (p *DeleteCiscoAsa1000vResourceParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["resourceid"]; found {
-		u.Set("resourceid", v.(string))
-	}
-	return u
-}
-
-func (p *DeleteCiscoAsa1000vResourceParams) SetResourceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["resourceid"] = v
-	return
-}
-
-// You should always use this function to get a new DeleteCiscoAsa1000vResourceParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewDeleteCiscoAsa1000vResourceParams(resourceid string) *DeleteCiscoAsa1000vResourceParams {
-	p := &DeleteCiscoAsa1000vResourceParams{}
-	p.p = make(map[string]interface{})
-	p.p["resourceid"] = resourceid
-	return p
-}
-
-// Deletes a Cisco ASA 1000v appliance
-func (s *ExternalDeviceService) DeleteCiscoAsa1000vResource(p *DeleteCiscoAsa1000vResourceParams) (*DeleteCiscoAsa1000vResourceResponse, error) {
-	resp, err := s.cs.newRequest("deleteCiscoAsa1000vResource", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DeleteCiscoAsa1000vResourceResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type DeleteCiscoAsa1000vResourceResponse struct {
-	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
-}
-
-type DeleteCiscoNexusVSMParams struct {
-	p map[string]interface{}
-}
-
-func (p *DeleteCiscoNexusVSMParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["id"]; found {
-		u.Set("id", v.(string))
-	}
-	return u
-}
-
-func (p *DeleteCiscoNexusVSMParams) SetId(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["id"] = v
-	return
-}
-
-// You should always use this function to get a new DeleteCiscoNexusVSMParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewDeleteCiscoNexusVSMParams(id string) *DeleteCiscoNexusVSMParams {
-	p := &DeleteCiscoNexusVSMParams{}
-	p.p = make(map[string]interface{})
-	p.p["id"] = id
-	return p
-}
-
-//  delete a Cisco Nexus VSM device
-func (s *ExternalDeviceService) DeleteCiscoNexusVSM(p *DeleteCiscoNexusVSMParams) (*DeleteCiscoNexusVSMResponse, error) {
-	resp, err := s.cs.newRequest("deleteCiscoNexusVSM", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DeleteCiscoNexusVSMResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type DeleteCiscoNexusVSMResponse struct {
-	JobID       string `json:"jobid"`
-	Displaytext string `json:"displaytext"`
-	Success     bool   `json:"success"`
-}
-
-type DeleteCiscoVnmcResourceParams struct {
-	p map[string]interface{}
-}
-
-func (p *DeleteCiscoVnmcResourceParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["resourceid"]; found {
-		u.Set("resourceid", v.(string))
-	}
-	return u
-}
-
-func (p *DeleteCiscoVnmcResourceParams) SetResourceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["resourceid"] = v
-	return
-}
-
-// You should always use this function to get a new DeleteCiscoVnmcResourceParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewDeleteCiscoVnmcResourceParams(resourceid string) *DeleteCiscoVnmcResourceParams {
-	p := &DeleteCiscoVnmcResourceParams{}
-	p.p = make(map[string]interface{})
-	p.p["resourceid"] = resourceid
-	return p
-}
-
-// Deletes a Cisco Vnmc controller
-func (s *ExternalDeviceService) DeleteCiscoVnmcResource(p *DeleteCiscoVnmcResourceParams) (*DeleteCiscoVnmcResourceResponse, error) {
-	resp, err := s.cs.newRequest("deleteCiscoVnmcResource", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DeleteCiscoVnmcResourceResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type DeleteCiscoVnmcResourceResponse struct {
-	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
-}
-
-type DisableCiscoNexusVSMParams struct {
-	p map[string]interface{}
-}
-
-func (p *DisableCiscoNexusVSMParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["id"]; found {
-		u.Set("id", v.(string))
-	}
-	return u
-}
-
-func (p *DisableCiscoNexusVSMParams) SetId(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["id"] = v
-	return
-}
-
-// You should always use this function to get a new DisableCiscoNexusVSMParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewDisableCiscoNexusVSMParams(id string) *DisableCiscoNexusVSMParams {
-	p := &DisableCiscoNexusVSMParams{}
-	p.p = make(map[string]interface{})
-	p.p["id"] = id
-	return p
-}
-
-// disable a Cisco Nexus VSM device
-func (s *ExternalDeviceService) DisableCiscoNexusVSM(p *DisableCiscoNexusVSMParams) (*DisableCiscoNexusVSMResponse, error) {
-	resp, err := s.cs.newRequest("disableCiscoNexusVSM", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DisableCiscoNexusVSMResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		b, err = getRawValue(b)
-		if err != nil {
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type DisableCiscoNexusVSMResponse struct {
-	JobID            string `json:"jobid"`
-	Ipaddress        string `json:"ipaddress"`
-	Vsmconfigmode    string `json:"vsmconfigmode"`
-	Vsmconfigstate   string `json:"vsmconfigstate"`
-	Vsmctrlvlanid    int    `json:"vsmctrlvlanid"`
-	Vsmdeviceid      string `json:"vsmdeviceid"`
-	Vsmdevicename    string `json:"vsmdevicename"`
-	Vsmdevicestate   string `json:"vsmdevicestate"`
-	Vsmdomainid      string `json:"vsmdomainid"`
-	Vsmmgmtvlanid    string `json:"vsmmgmtvlanid"`
-	Vsmpktvlanid     int    `json:"vsmpktvlanid"`
-	Vsmstoragevlanid int    `json:"vsmstoragevlanid"`
-}
-
-type EnableCiscoNexusVSMParams struct {
-	p map[string]interface{}
-}
-
-func (p *EnableCiscoNexusVSMParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["id"]; found {
-		u.Set("id", v.(string))
-	}
-	return u
-}
-
-func (p *EnableCiscoNexusVSMParams) SetId(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["id"] = v
-	return
-}
-
-// You should always use this function to get a new EnableCiscoNexusVSMParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewEnableCiscoNexusVSMParams(id string) *EnableCiscoNexusVSMParams {
-	p := &EnableCiscoNexusVSMParams{}
-	p.p = make(map[string]interface{})
-	p.p["id"] = id
-	return p
-}
-
-// Enable a Cisco Nexus VSM device
-func (s *ExternalDeviceService) EnableCiscoNexusVSM(p *EnableCiscoNexusVSMParams) (*EnableCiscoNexusVSMResponse, error) {
-	resp, err := s.cs.newRequest("enableCiscoNexusVSM", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r EnableCiscoNexusVSMResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		b, err = getRawValue(b)
-		if err != nil {
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type EnableCiscoNexusVSMResponse struct {
-	JobID            string `json:"jobid"`
-	Ipaddress        string `json:"ipaddress"`
-	Vsmconfigmode    string `json:"vsmconfigmode"`
-	Vsmconfigstate   string `json:"vsmconfigstate"`
-	Vsmctrlvlanid    int    `json:"vsmctrlvlanid"`
-	Vsmdeviceid      string `json:"vsmdeviceid"`
-	Vsmdevicename    string `json:"vsmdevicename"`
-	Vsmdevicestate   string `json:"vsmdevicestate"`
-	Vsmdomainid      string `json:"vsmdomainid"`
-	Vsmmgmtvlanid    string `json:"vsmmgmtvlanid"`
-	Vsmpktvlanid     int    `json:"vsmpktvlanid"`
-	Vsmstoragevlanid int    `json:"vsmstoragevlanid"`
-}
-
-type ListCiscoAsa1000vResourcesParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListCiscoAsa1000vResourcesParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["hostname"]; found {
-		u.Set("hostname", v.(string))
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	if v, found := p.p["resourceid"]; found {
-		u.Set("resourceid", v.(string))
-	}
-	return u
-}
-
-func (p *ListCiscoAsa1000vResourcesParams) SetHostname(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["hostname"] = v
-	return
-}
-
-func (p *ListCiscoAsa1000vResourcesParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListCiscoAsa1000vResourcesParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListCiscoAsa1000vResourcesParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListCiscoAsa1000vResourcesParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-func (p *ListCiscoAsa1000vResourcesParams) SetResourceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["resourceid"] = v
-	return
-}
-
-// You should always use this function to get a new ListCiscoAsa1000vResourcesParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewListCiscoAsa1000vResourcesParams() *ListCiscoAsa1000vResourcesParams {
-	p := &ListCiscoAsa1000vResourcesParams{}
-	p.p = make(map[string]interface{})
-	return p
-}
-
-// Lists Cisco ASA 1000v appliances
-func (s *ExternalDeviceService) ListCiscoAsa1000vResources(p *ListCiscoAsa1000vResourcesParams) (*ListCiscoAsa1000vResourcesResponse, error) {
-	resp, err := s.cs.newRequest("listCiscoAsa1000vResources", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListCiscoAsa1000vResourcesResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListCiscoAsa1000vResourcesResponse struct {
-	Count                  int                      `json:"count"`
-	CiscoAsa1000vResources []*CiscoAsa1000vResource `json:"ciscoasa1000vresource"`
-}
-
-type CiscoAsa1000vResource struct {
-}
-
-type ListCiscoNexusVSMsParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListCiscoNexusVSMsParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["clusterid"]; found {
-		u.Set("clusterid", v.(string))
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *ListCiscoNexusVSMsParams) SetClusterid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["clusterid"] = v
-	return
-}
-
-func (p *ListCiscoNexusVSMsParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListCiscoNexusVSMsParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListCiscoNexusVSMsParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListCiscoNexusVSMsParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new ListCiscoNexusVSMsParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewListCiscoNexusVSMsParams() *ListCiscoNexusVSMsParams {
-	p := &ListCiscoNexusVSMsParams{}
-	p.p = make(map[string]interface{})
-	return p
-}
-
-// Retrieves a Cisco Nexus 1000v Virtual Switch Manager device associated with a Cluster
-func (s *ExternalDeviceService) ListCiscoNexusVSMs(p *ListCiscoNexusVSMsParams) (*ListCiscoNexusVSMsResponse, error) {
-	resp, err := s.cs.newRequest("listCiscoNexusVSMs", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListCiscoNexusVSMsResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListCiscoNexusVSMsResponse struct {
-	Count          int              `json:"count"`
-	CiscoNexusVSMs []*CiscoNexusVSM `json:"cisconexusvsm"`
-}
-
-type CiscoNexusVSM struct {
-	Ipaddress        string `json:"ipaddress"`
-	Vsmconfigmode    string `json:"vsmconfigmode"`
-	Vsmconfigstate   string `json:"vsmconfigstate"`
-	Vsmctrlvlanid    int    `json:"vsmctrlvlanid"`
-	Vsmdeviceid      string `json:"vsmdeviceid"`
-	Vsmdevicename    string `json:"vsmdevicename"`
-	Vsmdevicestate   string `json:"vsmdevicestate"`
-	Vsmdomainid      string `json:"vsmdomainid"`
-	Vsmmgmtvlanid    string `json:"vsmmgmtvlanid"`
-	Vsmpktvlanid     int    `json:"vsmpktvlanid"`
-	Vsmstoragevlanid int    `json:"vsmstoragevlanid"`
-}
-
-type ListCiscoVnmcResourcesParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListCiscoVnmcResourcesParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	if v, found := p.p["resourceid"]; found {
-		u.Set("resourceid", v.(string))
-	}
-	return u
-}
-
-func (p *ListCiscoVnmcResourcesParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListCiscoVnmcResourcesParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListCiscoVnmcResourcesParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListCiscoVnmcResourcesParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-func (p *ListCiscoVnmcResourcesParams) SetResourceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["resourceid"] = v
-	return
-}
-
-// You should always use this function to get a new ListCiscoVnmcResourcesParams instance,
-// as then you are sure you have configured all required params
-func (s *ExternalDeviceService) NewListCiscoVnmcResourcesParams() *ListCiscoVnmcResourcesParams {
-	p := &ListCiscoVnmcResourcesParams{}
-	p.p = make(map[string]interface{})
-	return p
-}
-
-// Lists Cisco VNMC controllers
-func (s *ExternalDeviceService) ListCiscoVnmcResources(p *ListCiscoVnmcResourcesParams) (*ListCiscoVnmcResourcesResponse, error) {
-	resp, err := s.cs.newRequest("listCiscoVnmcResources", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListCiscoVnmcResourcesResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListCiscoVnmcResourcesResponse struct {
-	Count              int                  `json:"count"`
-	CiscoVnmcResources []*CiscoVnmcResource `json:"ciscovnmcresource"`
-}
-
-type CiscoVnmcResource struct {
-}
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/FirewallService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/FirewallService.go
index 402e15f..4c4f85b 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/FirewallService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/FirewallService.go
@@ -214,146 +214,6 @@
 	Zoneid            string `json:"zoneid"`
 }
 
-type AddSrxFirewallParams struct {
-	p map[string]interface{}
-}
-
-func (p *AddSrxFirewallParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["networkdevicetype"]; found {
-		u.Set("networkdevicetype", v.(string))
-	}
-	if v, found := p.p["password"]; found {
-		u.Set("password", v.(string))
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	if v, found := p.p["url"]; found {
-		u.Set("url", v.(string))
-	}
-	if v, found := p.p["username"]; found {
-		u.Set("username", v.(string))
-	}
-	return u
-}
-
-func (p *AddSrxFirewallParams) SetNetworkdevicetype(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["networkdevicetype"] = v
-	return
-}
-
-func (p *AddSrxFirewallParams) SetPassword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["password"] = v
-	return
-}
-
-func (p *AddSrxFirewallParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-func (p *AddSrxFirewallParams) SetUrl(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["url"] = v
-	return
-}
-
-func (p *AddSrxFirewallParams) SetUsername(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["username"] = v
-	return
-}
-
-// You should always use this function to get a new AddSrxFirewallParams instance,
-// as then you are sure you have configured all required params
-func (s *FirewallService) NewAddSrxFirewallParams(networkdevicetype string, password string, physicalnetworkid string, url string, username string) *AddSrxFirewallParams {
-	p := &AddSrxFirewallParams{}
-	p.p = make(map[string]interface{})
-	p.p["networkdevicetype"] = networkdevicetype
-	p.p["password"] = password
-	p.p["physicalnetworkid"] = physicalnetworkid
-	p.p["url"] = url
-	p.p["username"] = username
-	return p
-}
-
-// Adds a SRX firewall device
-func (s *FirewallService) AddSrxFirewall(p *AddSrxFirewallParams) (*AddSrxFirewallResponse, error) {
-	resp, err := s.cs.newRequest("addSrxFirewall", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r AddSrxFirewallResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		b, err = getRawValue(b)
-		if err != nil {
-			return nil, err
-		}
-
-		b, err = convertFirewallServiceResponse(b)
-		if err != nil {
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type AddSrxFirewallResponse struct {
-	JobID             string `json:"jobid"`
-	Fwdevicecapacity  int64  `json:"fwdevicecapacity"`
-	Fwdeviceid        string `json:"fwdeviceid"`
-	Fwdevicename      string `json:"fwdevicename"`
-	Fwdevicestate     string `json:"fwdevicestate"`
-	Ipaddress         string `json:"ipaddress"`
-	Numretries        string `json:"numretries"`
-	Physicalnetworkid string `json:"physicalnetworkid"`
-	Privateinterface  string `json:"privateinterface"`
-	Privatezone       string `json:"privatezone"`
-	Provider          string `json:"provider"`
-	Publicinterface   string `json:"publicinterface"`
-	Publiczone        string `json:"publiczone"`
-	Timeout           string `json:"timeout"`
-	Usageinterface    string `json:"usageinterface"`
-	Username          string `json:"username"`
-	Zoneid            string `json:"zoneid"`
-}
-
 type ConfigurePaloAltoFirewallParams struct {
 	p map[string]interface{}
 }
@@ -458,110 +318,6 @@
 	Zoneid            string `json:"zoneid"`
 }
 
-type ConfigureSrxFirewallParams struct {
-	p map[string]interface{}
-}
-
-func (p *ConfigureSrxFirewallParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["fwdevicecapacity"]; found {
-		vv := strconv.FormatInt(v.(int64), 10)
-		u.Set("fwdevicecapacity", vv)
-	}
-	if v, found := p.p["fwdeviceid"]; found {
-		u.Set("fwdeviceid", v.(string))
-	}
-	return u
-}
-
-func (p *ConfigureSrxFirewallParams) SetFwdevicecapacity(v int64) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["fwdevicecapacity"] = v
-	return
-}
-
-func (p *ConfigureSrxFirewallParams) SetFwdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["fwdeviceid"] = v
-	return
-}
-
-// You should always use this function to get a new ConfigureSrxFirewallParams instance,
-// as then you are sure you have configured all required params
-func (s *FirewallService) NewConfigureSrxFirewallParams(fwdeviceid string) *ConfigureSrxFirewallParams {
-	p := &ConfigureSrxFirewallParams{}
-	p.p = make(map[string]interface{})
-	p.p["fwdeviceid"] = fwdeviceid
-	return p
-}
-
-// Configures a SRX firewall device
-func (s *FirewallService) ConfigureSrxFirewall(p *ConfigureSrxFirewallParams) (*SrxFirewallResponse, error) {
-	resp, err := s.cs.newRequest("configureSrxFirewall", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r SrxFirewallResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		b, err = getRawValue(b)
-		if err != nil {
-			return nil, err
-		}
-
-		b, err = convertFirewallServiceResponse(b)
-		if err != nil {
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type SrxFirewallResponse struct {
-	JobID             string `json:"jobid"`
-	Fwdevicecapacity  int64  `json:"fwdevicecapacity"`
-	Fwdeviceid        string `json:"fwdeviceid"`
-	Fwdevicename      string `json:"fwdevicename"`
-	Fwdevicestate     string `json:"fwdevicestate"`
-	Ipaddress         string `json:"ipaddress"`
-	Numretries        string `json:"numretries"`
-	Physicalnetworkid string `json:"physicalnetworkid"`
-	Privateinterface  string `json:"privateinterface"`
-	Privatezone       string `json:"privatezone"`
-	Provider          string `json:"provider"`
-	Publicinterface   string `json:"publicinterface"`
-	Publiczone        string `json:"publiczone"`
-	Timeout           string `json:"timeout"`
-	Usageinterface    string `json:"usageinterface"`
-	Username          string `json:"username"`
-	Zoneid            string `json:"zoneid"`
-}
-
 type CreateEgressFirewallRuleParams struct {
 	p map[string]interface{}
 }
@@ -575,6 +331,10 @@
 		vv := strings.Join(v.([]string), ",")
 		u.Set("cidrlist", vv)
 	}
+	if v, found := p.p["destcidrlist"]; found {
+		vv := strings.Join(v.([]string), ",")
+		u.Set("destcidrlist", vv)
+	}
 	if v, found := p.p["endport"]; found {
 		vv := strconv.Itoa(v.(int))
 		u.Set("endport", vv)
@@ -615,6 +375,14 @@
 	return
 }
 
+func (p *CreateEgressFirewallRuleParams) SetDestcidrlist(v []string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["destcidrlist"] = v
+	return
+}
+
 func (p *CreateEgressFirewallRuleParams) SetEndport(v int) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -730,31 +498,21 @@
 }
 
 type CreateEgressFirewallRuleResponse struct {
-	JobID       string `json:"jobid"`
-	Cidrlist    string `json:"cidrlist"`
-	Endport     int    `json:"endport"`
-	Fordisplay  bool   `json:"fordisplay"`
-	Icmpcode    int    `json:"icmpcode"`
-	Icmptype    int    `json:"icmptype"`
-	Id          string `json:"id"`
-	Ipaddress   string `json:"ipaddress"`
-	Ipaddressid string `json:"ipaddressid"`
-	Networkid   string `json:"networkid"`
-	Protocol    string `json:"protocol"`
-	Startport   int    `json:"startport"`
-	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID        string `json:"jobid"`
+	Cidrlist     string `json:"cidrlist"`
+	Destcidrlist string `json:"destcidrlist"`
+	Endport      int    `json:"endport"`
+	Fordisplay   bool   `json:"fordisplay"`
+	Icmpcode     int    `json:"icmpcode"`
+	Icmptype     int    `json:"icmptype"`
+	Id           string `json:"id"`
+	Ipaddress    string `json:"ipaddress"`
+	Ipaddressid  string `json:"ipaddressid"`
+	Networkid    string `json:"networkid"`
+	Protocol     string `json:"protocol"`
+	Startport    int    `json:"startport"`
+	State        string `json:"state"`
+	Tags         []Tags `json:"tags"`
 }
 
 type CreateFirewallRuleParams struct {
@@ -925,31 +683,21 @@
 }
 
 type CreateFirewallRuleResponse struct {
-	JobID       string `json:"jobid"`
-	Cidrlist    string `json:"cidrlist"`
-	Endport     int    `json:"endport"`
-	Fordisplay  bool   `json:"fordisplay"`
-	Icmpcode    int    `json:"icmpcode"`
-	Icmptype    int    `json:"icmptype"`
-	Id          string `json:"id"`
-	Ipaddress   string `json:"ipaddress"`
-	Ipaddressid string `json:"ipaddressid"`
-	Networkid   string `json:"networkid"`
-	Protocol    string `json:"protocol"`
-	Startport   int    `json:"startport"`
-	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID        string `json:"jobid"`
+	Cidrlist     string `json:"cidrlist"`
+	Destcidrlist string `json:"destcidrlist"`
+	Endport      int    `json:"endport"`
+	Fordisplay   bool   `json:"fordisplay"`
+	Icmpcode     int    `json:"icmpcode"`
+	Icmptype     int    `json:"icmptype"`
+	Id           string `json:"id"`
+	Ipaddress    string `json:"ipaddress"`
+	Ipaddressid  string `json:"ipaddressid"`
+	Networkid    string `json:"networkid"`
+	Protocol     string `json:"protocol"`
+	Startport    int    `json:"startport"`
+	State        string `json:"state"`
+	Tags         []Tags `json:"tags"`
 }
 
 type CreatePortForwardingRuleParams struct {
@@ -1157,31 +905,20 @@
 }
 
 type CreatePortForwardingRuleResponse struct {
-	JobID          string `json:"jobid"`
-	Cidrlist       string `json:"cidrlist"`
-	Fordisplay     bool   `json:"fordisplay"`
-	Id             string `json:"id"`
-	Ipaddress      string `json:"ipaddress"`
-	Ipaddressid    string `json:"ipaddressid"`
-	Networkid      string `json:"networkid"`
-	Privateendport string `json:"privateendport"`
-	Privateport    string `json:"privateport"`
-	Protocol       string `json:"protocol"`
-	Publicendport  string `json:"publicendport"`
-	Publicport     string `json:"publicport"`
-	State          string `json:"state"`
-	Tags           []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                     string `json:"jobid"`
+	Cidrlist                  string `json:"cidrlist"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Ipaddressid               string `json:"ipaddressid"`
+	Networkid                 string `json:"networkid"`
+	Privateendport            string `json:"privateendport"`
+	Privateport               string `json:"privateport"`
+	Protocol                  string `json:"protocol"`
+	Publicendport             string `json:"publicendport"`
+	Publicport                string `json:"publicport"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
@@ -1480,79 +1217,6 @@
 	Success     bool   `json:"success"`
 }
 
-type DeleteSrxFirewallParams struct {
-	p map[string]interface{}
-}
-
-func (p *DeleteSrxFirewallParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["fwdeviceid"]; found {
-		u.Set("fwdeviceid", v.(string))
-	}
-	return u
-}
-
-func (p *DeleteSrxFirewallParams) SetFwdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["fwdeviceid"] = v
-	return
-}
-
-// You should always use this function to get a new DeleteSrxFirewallParams instance,
-// as then you are sure you have configured all required params
-func (s *FirewallService) NewDeleteSrxFirewallParams(fwdeviceid string) *DeleteSrxFirewallParams {
-	p := &DeleteSrxFirewallParams{}
-	p.p = make(map[string]interface{})
-	p.p["fwdeviceid"] = fwdeviceid
-	return p
-}
-
-//  delete a SRX firewall device
-func (s *FirewallService) DeleteSrxFirewall(p *DeleteSrxFirewallParams) (*DeleteSrxFirewallResponse, error) {
-	resp, err := s.cs.newRequest("deleteSrxFirewall", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DeleteSrxFirewallResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		b, err = convertFirewallServiceResponse(b)
-		if err != nil {
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type DeleteSrxFirewallResponse struct {
-	JobID       string `json:"jobid"`
-	Displaytext string `json:"displaytext"`
-	Success     bool   `json:"success"`
-}
-
 type ListEgressFirewallRulesParams struct {
 	p map[string]interface{}
 }
@@ -1785,30 +1449,20 @@
 }
 
 type EgressFirewallRule struct {
-	Cidrlist    string `json:"cidrlist"`
-	Endport     int    `json:"endport"`
-	Fordisplay  bool   `json:"fordisplay"`
-	Icmpcode    int    `json:"icmpcode"`
-	Icmptype    int    `json:"icmptype"`
-	Id          string `json:"id"`
-	Ipaddress   string `json:"ipaddress"`
-	Ipaddressid string `json:"ipaddressid"`
-	Networkid   string `json:"networkid"`
-	Protocol    string `json:"protocol"`
-	Startport   int    `json:"startport"`
-	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Cidrlist     string `json:"cidrlist"`
+	Destcidrlist string `json:"destcidrlist"`
+	Endport      int    `json:"endport"`
+	Fordisplay   bool   `json:"fordisplay"`
+	Icmpcode     int    `json:"icmpcode"`
+	Icmptype     int    `json:"icmptype"`
+	Id           string `json:"id"`
+	Ipaddress    string `json:"ipaddress"`
+	Ipaddressid  string `json:"ipaddressid"`
+	Networkid    string `json:"networkid"`
+	Protocol     string `json:"protocol"`
+	Startport    int    `json:"startport"`
+	State        string `json:"state"`
+	Tags         []Tags `json:"tags"`
 }
 
 type ListFirewallRulesParams struct {
@@ -2043,30 +1697,20 @@
 }
 
 type FirewallRule struct {
-	Cidrlist    string `json:"cidrlist"`
-	Endport     int    `json:"endport"`
-	Fordisplay  bool   `json:"fordisplay"`
-	Icmpcode    int    `json:"icmpcode"`
-	Icmptype    int    `json:"icmptype"`
-	Id          string `json:"id"`
-	Ipaddress   string `json:"ipaddress"`
-	Ipaddressid string `json:"ipaddressid"`
-	Networkid   string `json:"networkid"`
-	Protocol    string `json:"protocol"`
-	Startport   int    `json:"startport"`
-	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Cidrlist     string `json:"cidrlist"`
+	Destcidrlist string `json:"destcidrlist"`
+	Endport      int    `json:"endport"`
+	Fordisplay   bool   `json:"fordisplay"`
+	Icmpcode     int    `json:"icmpcode"`
+	Icmptype     int    `json:"icmptype"`
+	Id           string `json:"id"`
+	Ipaddress    string `json:"ipaddress"`
+	Ipaddressid  string `json:"ipaddressid"`
+	Networkid    string `json:"networkid"`
+	Protocol     string `json:"protocol"`
+	Startport    int    `json:"startport"`
+	State        string `json:"state"`
+	Tags         []Tags `json:"tags"`
 }
 
 type ListPaloAltoFirewallsParams struct {
@@ -2422,157 +2066,25 @@
 }
 
 type PortForwardingRule struct {
-	Cidrlist       string `json:"cidrlist"`
-	Fordisplay     bool   `json:"fordisplay"`
-	Id             string `json:"id"`
-	Ipaddress      string `json:"ipaddress"`
-	Ipaddressid    string `json:"ipaddressid"`
-	Networkid      string `json:"networkid"`
-	Privateendport string `json:"privateendport"`
-	Privateport    string `json:"privateport"`
-	Protocol       string `json:"protocol"`
-	Publicendport  string `json:"publicendport"`
-	Publicport     string `json:"publicport"`
-	State          string `json:"state"`
-	Tags           []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Cidrlist                  string `json:"cidrlist"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Ipaddressid               string `json:"ipaddressid"`
+	Networkid                 string `json:"networkid"`
+	Privateendport            string `json:"privateendport"`
+	Privateport               string `json:"privateport"`
+	Protocol                  string `json:"protocol"`
+	Publicendport             string `json:"publicendport"`
+	Publicport                string `json:"publicport"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
 	Vmguestip                 string `json:"vmguestip"`
 }
 
-type ListSrxFirewallsParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListSrxFirewallsParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["fwdeviceid"]; found {
-		u.Set("fwdeviceid", v.(string))
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	return u
-}
-
-func (p *ListSrxFirewallsParams) SetFwdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["fwdeviceid"] = v
-	return
-}
-
-func (p *ListSrxFirewallsParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListSrxFirewallsParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListSrxFirewallsParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListSrxFirewallsParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-// You should always use this function to get a new ListSrxFirewallsParams instance,
-// as then you are sure you have configured all required params
-func (s *FirewallService) NewListSrxFirewallsParams() *ListSrxFirewallsParams {
-	p := &ListSrxFirewallsParams{}
-	p.p = make(map[string]interface{})
-	return p
-}
-
-// lists SRX firewall devices in a physical network
-func (s *FirewallService) ListSrxFirewalls(p *ListSrxFirewallsParams) (*ListSrxFirewallsResponse, error) {
-	resp, err := s.cs.newRequest("listSrxFirewalls", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	resp, err = convertFirewallServiceResponse(resp)
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListSrxFirewallsResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListSrxFirewallsResponse struct {
-	Count        int            `json:"count"`
-	SrxFirewalls []*SrxFirewall `json:"srxfirewall"`
-}
-
-type SrxFirewall struct {
-	Fwdevicecapacity  int64  `json:"fwdevicecapacity"`
-	Fwdeviceid        string `json:"fwdeviceid"`
-	Fwdevicename      string `json:"fwdevicename"`
-	Fwdevicestate     string `json:"fwdevicestate"`
-	Ipaddress         string `json:"ipaddress"`
-	Numretries        string `json:"numretries"`
-	Physicalnetworkid string `json:"physicalnetworkid"`
-	Privateinterface  string `json:"privateinterface"`
-	Privatezone       string `json:"privatezone"`
-	Provider          string `json:"provider"`
-	Publicinterface   string `json:"publicinterface"`
-	Publiczone        string `json:"publiczone"`
-	Timeout           string `json:"timeout"`
-	Usageinterface    string `json:"usageinterface"`
-	Username          string `json:"username"`
-	Zoneid            string `json:"zoneid"`
-}
-
 type UpdateEgressFirewallRuleParams struct {
 	p map[string]interface{}
 }
@@ -2669,31 +2181,21 @@
 }
 
 type UpdateEgressFirewallRuleResponse struct {
-	JobID       string `json:"jobid"`
-	Cidrlist    string `json:"cidrlist"`
-	Endport     int    `json:"endport"`
-	Fordisplay  bool   `json:"fordisplay"`
-	Icmpcode    int    `json:"icmpcode"`
-	Icmptype    int    `json:"icmptype"`
-	Id          string `json:"id"`
-	Ipaddress   string `json:"ipaddress"`
-	Ipaddressid string `json:"ipaddressid"`
-	Networkid   string `json:"networkid"`
-	Protocol    string `json:"protocol"`
-	Startport   int    `json:"startport"`
-	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID        string `json:"jobid"`
+	Cidrlist     string `json:"cidrlist"`
+	Destcidrlist string `json:"destcidrlist"`
+	Endport      int    `json:"endport"`
+	Fordisplay   bool   `json:"fordisplay"`
+	Icmpcode     int    `json:"icmpcode"`
+	Icmptype     int    `json:"icmptype"`
+	Id           string `json:"id"`
+	Ipaddress    string `json:"ipaddress"`
+	Ipaddressid  string `json:"ipaddressid"`
+	Networkid    string `json:"networkid"`
+	Protocol     string `json:"protocol"`
+	Startport    int    `json:"startport"`
+	State        string `json:"state"`
+	Tags         []Tags `json:"tags"`
 }
 
 type UpdateFirewallRuleParams struct {
@@ -2792,31 +2294,21 @@
 }
 
 type UpdateFirewallRuleResponse struct {
-	JobID       string `json:"jobid"`
-	Cidrlist    string `json:"cidrlist"`
-	Endport     int    `json:"endport"`
-	Fordisplay  bool   `json:"fordisplay"`
-	Icmpcode    int    `json:"icmpcode"`
-	Icmptype    int    `json:"icmptype"`
-	Id          string `json:"id"`
-	Ipaddress   string `json:"ipaddress"`
-	Ipaddressid string `json:"ipaddressid"`
-	Networkid   string `json:"networkid"`
-	Protocol    string `json:"protocol"`
-	Startport   int    `json:"startport"`
-	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID        string `json:"jobid"`
+	Cidrlist     string `json:"cidrlist"`
+	Destcidrlist string `json:"destcidrlist"`
+	Endport      int    `json:"endport"`
+	Fordisplay   bool   `json:"fordisplay"`
+	Icmpcode     int    `json:"icmpcode"`
+	Icmptype     int    `json:"icmptype"`
+	Id           string `json:"id"`
+	Ipaddress    string `json:"ipaddress"`
+	Ipaddressid  string `json:"ipaddressid"`
+	Networkid    string `json:"networkid"`
+	Protocol     string `json:"protocol"`
+	Startport    int    `json:"startport"`
+	State        string `json:"state"`
+	Tags         []Tags `json:"tags"`
 }
 
 type UpdatePortForwardingRuleParams struct {
@@ -2838,6 +2330,10 @@
 	if v, found := p.p["id"]; found {
 		u.Set("id", v.(string))
 	}
+	if v, found := p.p["privateendport"]; found {
+		vv := strconv.Itoa(v.(int))
+		u.Set("privateendport", vv)
+	}
 	if v, found := p.p["privateport"]; found {
 		vv := strconv.Itoa(v.(int))
 		u.Set("privateport", vv)
@@ -2875,6 +2371,14 @@
 	return
 }
 
+func (p *UpdatePortForwardingRuleParams) SetPrivateendport(v int) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["privateendport"] = v
+	return
+}
+
 func (p *UpdatePortForwardingRuleParams) SetPrivateport(v int) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -2949,31 +2453,20 @@
 }
 
 type UpdatePortForwardingRuleResponse struct {
-	JobID          string `json:"jobid"`
-	Cidrlist       string `json:"cidrlist"`
-	Fordisplay     bool   `json:"fordisplay"`
-	Id             string `json:"id"`
-	Ipaddress      string `json:"ipaddress"`
-	Ipaddressid    string `json:"ipaddressid"`
-	Networkid      string `json:"networkid"`
-	Privateendport string `json:"privateendport"`
-	Privateport    string `json:"privateport"`
-	Protocol       string `json:"protocol"`
-	Publicendport  string `json:"publicendport"`
-	Publicport     string `json:"publicport"`
-	State          string `json:"state"`
-	Tags           []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                     string `json:"jobid"`
+	Cidrlist                  string `json:"cidrlist"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Ipaddressid               string `json:"ipaddressid"`
+	Networkid                 string `json:"networkid"`
+	Privateendport            string `json:"privateendport"`
+	Privateport               string `json:"privateport"`
+	Protocol                  string `json:"protocol"`
+	Publicendport             string `json:"publicendport"`
+	Publicport                string `json:"publicport"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/GuestOSService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/GuestOSService.go
index 84ea9c7..9e6a672 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/GuestOSService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/GuestOSService.go
@@ -33,6 +33,13 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["details"]; found {
+		i := 0
+		for k, vv := range v.(map[string]string) {
+			u.Set(fmt.Sprintf("details[%d].%s", i, k), vv)
+			i++
+		}
+	}
 	if v, found := p.p["name"]; found {
 		u.Set("name", v.(string))
 	}
@@ -45,6 +52,14 @@
 	return u
 }
 
+func (p *AddGuestOsParams) SetDetails(v map[string]string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["details"] = v
+	return
+}
+
 func (p *AddGuestOsParams) SetName(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -71,9 +86,10 @@
 
 // You should always use this function to get a new AddGuestOsParams instance,
 // as then you are sure you have configured all required params
-func (s *GuestOSService) NewAddGuestOsParams(oscategoryid string, osdisplayname string) *AddGuestOsParams {
+func (s *GuestOSService) NewAddGuestOsParams(details map[string]string, oscategoryid string, osdisplayname string) *AddGuestOsParams {
 	p := &AddGuestOsParams{}
 	p.p = make(map[string]interface{})
+	p.p["details"] = details
 	p.p["oscategoryid"] = oscategoryid
 	p.p["osdisplayname"] = osdisplayname
 	return p
@@ -118,7 +134,7 @@
 	JobID         string `json:"jobid"`
 	Description   string `json:"description"`
 	Id            string `json:"id"`
-	Isuserdefined string `json:"isuserdefined"`
+	Isuserdefined bool   `json:"isuserdefined"`
 	Oscategoryid  string `json:"oscategoryid"`
 }
 
@@ -737,7 +753,7 @@
 type OsType struct {
 	Description   string `json:"description"`
 	Id            string `json:"id"`
-	Isuserdefined string `json:"isuserdefined"`
+	Isuserdefined bool   `json:"isuserdefined"`
 	Oscategoryid  string `json:"oscategoryid"`
 }
 
@@ -886,6 +902,13 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["details"]; found {
+		i := 0
+		for k, vv := range v.(map[string]string) {
+			u.Set(fmt.Sprintf("details[%d].%s", i, k), vv)
+			i++
+		}
+	}
 	if v, found := p.p["id"]; found {
 		u.Set("id", v.(string))
 	}
@@ -895,6 +918,14 @@
 	return u
 }
 
+func (p *UpdateGuestOsParams) SetDetails(v map[string]string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["details"] = v
+	return
+}
+
 func (p *UpdateGuestOsParams) SetId(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -913,9 +944,10 @@
 
 // You should always use this function to get a new UpdateGuestOsParams instance,
 // as then you are sure you have configured all required params
-func (s *GuestOSService) NewUpdateGuestOsParams(id string, osdisplayname string) *UpdateGuestOsParams {
+func (s *GuestOSService) NewUpdateGuestOsParams(details map[string]string, id string, osdisplayname string) *UpdateGuestOsParams {
 	p := &UpdateGuestOsParams{}
 	p.p = make(map[string]interface{})
+	p.p["details"] = details
 	p.p["id"] = id
 	p.p["osdisplayname"] = osdisplayname
 	return p
@@ -960,7 +992,7 @@
 	JobID         string `json:"jobid"`
 	Description   string `json:"description"`
 	Id            string `json:"id"`
-	Isuserdefined string `json:"isuserdefined"`
+	Isuserdefined bool   `json:"isuserdefined"`
 	Oscategoryid  string `json:"oscategoryid"`
 }
 
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/HostService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/HostService.go
index 1832d4a..a5e6f35 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/HostService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/HostService.go
@@ -188,65 +188,74 @@
 }
 
 type AddBaremetalHostResponse struct {
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
+	Annotation                 string                             `json:"annotation"`
+	Averageload                int64                              `json:"averageload"`
+	Capabilities               string                             `json:"capabilities"`
+	Clusterid                  string                             `json:"clusterid"`
+	Clustername                string                             `json:"clustername"`
+	Clustertype                string                             `json:"clustertype"`
+	Cpuallocated               string                             `json:"cpuallocated"`
+	Cpunumber                  int                                `json:"cpunumber"`
+	Cpusockets                 int                                `json:"cpusockets"`
+	Cpuspeed                   int64                              `json:"cpuspeed"`
+	Cpuused                    string                             `json:"cpuused"`
+	Cpuwithoverprovisioning    string                             `json:"cpuwithoverprovisioning"`
+	Created                    string                             `json:"created"`
+	Details                    map[string]string                  `json:"details"`
+	Disconnected               string                             `json:"disconnected"`
+	Disksizeallocated          int64                              `json:"disksizeallocated"`
+	Disksizetotal              int64                              `json:"disksizetotal"`
+	Events                     string                             `json:"events"`
+	Gpugroup                   []AddBaremetalHostResponseGpugroup `json:"gpugroup"`
+	Hahost                     bool                               `json:"hahost"`
+	Hasenoughcapacity          bool                               `json:"hasenoughcapacity"`
+	Hostha                     string                             `json:"hostha"`
+	Hosttags                   string                             `json:"hosttags"`
+	Hypervisor                 string                             `json:"hypervisor"`
+	Hypervisorversion          string                             `json:"hypervisorversion"`
+	Id                         string                             `json:"id"`
+	Ipaddress                  string                             `json:"ipaddress"`
+	Islocalstorageactive       bool                               `json:"islocalstorageactive"`
+	Lastannotated              string                             `json:"lastannotated"`
+	Lastpinged                 string                             `json:"lastpinged"`
+	Managementserverid         int64                              `json:"managementserverid"`
+	Memoryallocated            int64                              `json:"memoryallocated"`
+	Memorytotal                int64                              `json:"memorytotal"`
+	Memoryused                 int64                              `json:"memoryused"`
+	Memorywithoverprovisioning string                             `json:"memorywithoverprovisioning"`
+	Name                       string                             `json:"name"`
+	Networkkbsread             int64                              `json:"networkkbsread"`
+	Networkkbswrite            int64                              `json:"networkkbswrite"`
+	Oscategoryid               string                             `json:"oscategoryid"`
+	Oscategoryname             string                             `json:"oscategoryname"`
+	Outofbandmanagement        OutOfBandManagementResponse        `json:"outofbandmanagement"`
+	Podid                      string                             `json:"podid"`
+	Podname                    string                             `json:"podname"`
+	Removed                    string                             `json:"removed"`
+	Resourcestate              string                             `json:"resourcestate"`
+	State                      string                             `json:"state"`
+	Suitableformigration       bool                               `json:"suitableformigration"`
+	Type                       string                             `json:"type"`
+	Username                   string                             `json:"username"`
+	Version                    string                             `json:"version"`
+	Zoneid                     string                             `json:"zoneid"`
+	Zonename                   string                             `json:"zonename"`
+}
+
+type AddBaremetalHostResponseGpugroup struct {
+	Gpugroupname string                                 `json:"gpugroupname"`
+	Vgpu         []AddBaremetalHostResponseGpugroupVgpu `json:"vgpu"`
+}
+
+type AddBaremetalHostResponseGpugroupVgpu struct {
+	Maxcapacity       int64  `json:"maxcapacity"`
+	Maxheads          int64  `json:"maxheads"`
+	Maxresolutionx    int64  `json:"maxresolutionx"`
+	Maxresolutiony    int64  `json:"maxresolutiony"`
+	Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
+	Remainingcapacity int64  `json:"remainingcapacity"`
+	Vgputype          string `json:"vgputype"`
+	Videoram          int64  `json:"videoram"`
 }
 
 type AddGloboDnsHostParams struct {
@@ -506,65 +515,74 @@
 }
 
 type AddHostResponse struct {
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
+	Annotation                 string                      `json:"annotation"`
+	Averageload                int64                       `json:"averageload"`
+	Capabilities               string                      `json:"capabilities"`
+	Clusterid                  string                      `json:"clusterid"`
+	Clustername                string                      `json:"clustername"`
+	Clustertype                string                      `json:"clustertype"`
+	Cpuallocated               string                      `json:"cpuallocated"`
+	Cpunumber                  int                         `json:"cpunumber"`
+	Cpusockets                 int                         `json:"cpusockets"`
+	Cpuspeed                   int64                       `json:"cpuspeed"`
+	Cpuused                    string                      `json:"cpuused"`
+	Cpuwithoverprovisioning    string                      `json:"cpuwithoverprovisioning"`
+	Created                    string                      `json:"created"`
+	Details                    map[string]string           `json:"details"`
+	Disconnected               string                      `json:"disconnected"`
+	Disksizeallocated          int64                       `json:"disksizeallocated"`
+	Disksizetotal              int64                       `json:"disksizetotal"`
+	Events                     string                      `json:"events"`
+	Gpugroup                   []AddHostResponseGpugroup   `json:"gpugroup"`
+	Hahost                     bool                        `json:"hahost"`
+	Hasenoughcapacity          bool                        `json:"hasenoughcapacity"`
+	Hostha                     string                      `json:"hostha"`
+	Hosttags                   string                      `json:"hosttags"`
+	Hypervisor                 string                      `json:"hypervisor"`
+	Hypervisorversion          string                      `json:"hypervisorversion"`
+	Id                         string                      `json:"id"`
+	Ipaddress                  string                      `json:"ipaddress"`
+	Islocalstorageactive       bool                        `json:"islocalstorageactive"`
+	Lastannotated              string                      `json:"lastannotated"`
+	Lastpinged                 string                      `json:"lastpinged"`
+	Managementserverid         int64                       `json:"managementserverid"`
+	Memoryallocated            int64                       `json:"memoryallocated"`
+	Memorytotal                int64                       `json:"memorytotal"`
+	Memoryused                 int64                       `json:"memoryused"`
+	Memorywithoverprovisioning string                      `json:"memorywithoverprovisioning"`
+	Name                       string                      `json:"name"`
+	Networkkbsread             int64                       `json:"networkkbsread"`
+	Networkkbswrite            int64                       `json:"networkkbswrite"`
+	Oscategoryid               string                      `json:"oscategoryid"`
+	Oscategoryname             string                      `json:"oscategoryname"`
+	Outofbandmanagement        OutOfBandManagementResponse `json:"outofbandmanagement"`
+	Podid                      string                      `json:"podid"`
+	Podname                    string                      `json:"podname"`
+	Removed                    string                      `json:"removed"`
+	Resourcestate              string                      `json:"resourcestate"`
+	State                      string                      `json:"state"`
+	Suitableformigration       bool                        `json:"suitableformigration"`
+	Type                       string                      `json:"type"`
+	Username                   string                      `json:"username"`
+	Version                    string                      `json:"version"`
+	Zoneid                     string                      `json:"zoneid"`
+	Zonename                   string                      `json:"zonename"`
+}
+
+type AddHostResponseGpugroup struct {
+	Gpugroupname string                        `json:"gpugroupname"`
+	Vgpu         []AddHostResponseGpugroupVgpu `json:"vgpu"`
+}
+
+type AddHostResponseGpugroupVgpu struct {
+	Maxcapacity       int64  `json:"maxcapacity"`
+	Maxheads          int64  `json:"maxheads"`
+	Maxresolutionx    int64  `json:"maxresolutionx"`
+	Maxresolutiony    int64  `json:"maxresolutiony"`
+	Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
+	Remainingcapacity int64  `json:"remainingcapacity"`
+	Vgputype          string `json:"vgputype"`
+	Videoram          int64  `json:"videoram"`
 }
 
 type AddSecondaryStorageParams struct {
@@ -626,15 +644,14 @@
 }
 
 type AddSecondaryStorageResponse struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
 
 type CancelHostMaintenanceParams struct {
@@ -705,66 +722,75 @@
 }
 
 type CancelHostMaintenanceResponse struct {
-	JobID                   string            `json:"jobid"`
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
+	JobID                      string                                  `json:"jobid"`
+	Annotation                 string                                  `json:"annotation"`
+	Averageload                int64                                   `json:"averageload"`
+	Capabilities               string                                  `json:"capabilities"`
+	Clusterid                  string                                  `json:"clusterid"`
+	Clustername                string                                  `json:"clustername"`
+	Clustertype                string                                  `json:"clustertype"`
+	Cpuallocated               string                                  `json:"cpuallocated"`
+	Cpunumber                  int                                     `json:"cpunumber"`
+	Cpusockets                 int                                     `json:"cpusockets"`
+	Cpuspeed                   int64                                   `json:"cpuspeed"`
+	Cpuused                    string                                  `json:"cpuused"`
+	Cpuwithoverprovisioning    string                                  `json:"cpuwithoverprovisioning"`
+	Created                    string                                  `json:"created"`
+	Details                    map[string]string                       `json:"details"`
+	Disconnected               string                                  `json:"disconnected"`
+	Disksizeallocated          int64                                   `json:"disksizeallocated"`
+	Disksizetotal              int64                                   `json:"disksizetotal"`
+	Events                     string                                  `json:"events"`
+	Gpugroup                   []CancelHostMaintenanceResponseGpugroup `json:"gpugroup"`
+	Hahost                     bool                                    `json:"hahost"`
+	Hasenoughcapacity          bool                                    `json:"hasenoughcapacity"`
+	Hostha                     string                                  `json:"hostha"`
+	Hosttags                   string                                  `json:"hosttags"`
+	Hypervisor                 string                                  `json:"hypervisor"`
+	Hypervisorversion          string                                  `json:"hypervisorversion"`
+	Id                         string                                  `json:"id"`
+	Ipaddress                  string                                  `json:"ipaddress"`
+	Islocalstorageactive       bool                                    `json:"islocalstorageactive"`
+	Lastannotated              string                                  `json:"lastannotated"`
+	Lastpinged                 string                                  `json:"lastpinged"`
+	Managementserverid         int64                                   `json:"managementserverid"`
+	Memoryallocated            int64                                   `json:"memoryallocated"`
+	Memorytotal                int64                                   `json:"memorytotal"`
+	Memoryused                 int64                                   `json:"memoryused"`
+	Memorywithoverprovisioning string                                  `json:"memorywithoverprovisioning"`
+	Name                       string                                  `json:"name"`
+	Networkkbsread             int64                                   `json:"networkkbsread"`
+	Networkkbswrite            int64                                   `json:"networkkbswrite"`
+	Oscategoryid               string                                  `json:"oscategoryid"`
+	Oscategoryname             string                                  `json:"oscategoryname"`
+	Outofbandmanagement        OutOfBandManagementResponse             `json:"outofbandmanagement"`
+	Podid                      string                                  `json:"podid"`
+	Podname                    string                                  `json:"podname"`
+	Removed                    string                                  `json:"removed"`
+	Resourcestate              string                                  `json:"resourcestate"`
+	State                      string                                  `json:"state"`
+	Suitableformigration       bool                                    `json:"suitableformigration"`
+	Type                       string                                  `json:"type"`
+	Username                   string                                  `json:"username"`
+	Version                    string                                  `json:"version"`
+	Zoneid                     string                                  `json:"zoneid"`
+	Zonename                   string                                  `json:"zonename"`
+}
+
+type CancelHostMaintenanceResponseGpugroup struct {
+	Gpugroupname string                                      `json:"gpugroupname"`
+	Vgpu         []CancelHostMaintenanceResponseGpugroupVgpu `json:"vgpu"`
+}
+
+type CancelHostMaintenanceResponseGpugroupVgpu struct {
+	Maxcapacity       int64  `json:"maxcapacity"`
+	Maxheads          int64  `json:"maxheads"`
+	Maxresolutionx    int64  `json:"maxresolutionx"`
+	Maxresolutiony    int64  `json:"maxresolutiony"`
+	Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
+	Remainingcapacity int64  `json:"remainingcapacity"`
+	Vgputype          string `json:"vgputype"`
+	Videoram          int64  `json:"videoram"`
 }
 
 type DedicateHostParams struct {
@@ -940,7 +966,26 @@
 
 type DeleteHostResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteHostResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteHostResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DisableOutOfBandManagementForHostParams struct {
@@ -1190,50 +1235,51 @@
 }
 
 type FindHostsForMigrationResponse struct {
-	Averageload             int64  `json:"averageload"`
-	Capabilities            string `json:"capabilities"`
-	Clusterid               string `json:"clusterid"`
-	Clustername             string `json:"clustername"`
-	Clustertype             string `json:"clustertype"`
-	Cpuallocated            string `json:"cpuallocated"`
-	Cpunumber               int    `json:"cpunumber"`
-	Cpuspeed                int64  `json:"cpuspeed"`
-	Cpuused                 string `json:"cpuused"`
-	Cpuwithoverprovisioning string `json:"cpuwithoverprovisioning"`
-	Created                 string `json:"created"`
-	Disconnected            string `json:"disconnected"`
-	Disksizeallocated       int64  `json:"disksizeallocated"`
-	Disksizetotal           int64  `json:"disksizetotal"`
-	Events                  string `json:"events"`
-	Hahost                  bool   `json:"hahost"`
-	Hasenoughcapacity       bool   `json:"hasenoughcapacity"`
-	Hosttags                string `json:"hosttags"`
-	Hypervisor              string `json:"hypervisor"`
-	Hypervisorversion       string `json:"hypervisorversion"`
-	Id                      string `json:"id"`
-	Ipaddress               string `json:"ipaddress"`
-	Islocalstorageactive    bool   `json:"islocalstorageactive"`
-	Lastpinged              string `json:"lastpinged"`
-	Managementserverid      int64  `json:"managementserverid"`
-	Memoryallocated         int64  `json:"memoryallocated"`
-	Memorytotal             int64  `json:"memorytotal"`
-	Memoryused              int64  `json:"memoryused"`
-	Name                    string `json:"name"`
-	Networkkbsread          int64  `json:"networkkbsread"`
-	Networkkbswrite         int64  `json:"networkkbswrite"`
-	Oscategoryid            string `json:"oscategoryid"`
-	Oscategoryname          string `json:"oscategoryname"`
-	Podid                   string `json:"podid"`
-	Podname                 string `json:"podname"`
-	Removed                 string `json:"removed"`
-	RequiresStorageMotion   bool   `json:"requiresStorageMotion"`
-	Resourcestate           string `json:"resourcestate"`
-	State                   string `json:"state"`
-	Suitableformigration    bool   `json:"suitableformigration"`
-	Type                    string `json:"type"`
-	Version                 string `json:"version"`
-	Zoneid                  string `json:"zoneid"`
-	Zonename                string `json:"zonename"`
+	Averageload                int64  `json:"averageload"`
+	Capabilities               string `json:"capabilities"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
+	Clustertype                string `json:"clustertype"`
+	Cpuallocated               string `json:"cpuallocated"`
+	Cpunumber                  int    `json:"cpunumber"`
+	Cpuspeed                   int64  `json:"cpuspeed"`
+	Cpuused                    string `json:"cpuused"`
+	Cpuwithoverprovisioning    string `json:"cpuwithoverprovisioning"`
+	Created                    string `json:"created"`
+	Disconnected               string `json:"disconnected"`
+	Disksizeallocated          int64  `json:"disksizeallocated"`
+	Disksizetotal              int64  `json:"disksizetotal"`
+	Events                     string `json:"events"`
+	Hahost                     bool   `json:"hahost"`
+	Hasenoughcapacity          bool   `json:"hasenoughcapacity"`
+	Hosttags                   string `json:"hosttags"`
+	Hypervisor                 string `json:"hypervisor"`
+	Hypervisorversion          string `json:"hypervisorversion"`
+	Id                         string `json:"id"`
+	Ipaddress                  string `json:"ipaddress"`
+	Islocalstorageactive       bool   `json:"islocalstorageactive"`
+	Lastpinged                 string `json:"lastpinged"`
+	Managementserverid         int64  `json:"managementserverid"`
+	Memoryallocated            string `json:"memoryallocated"`
+	Memorytotal                int64  `json:"memorytotal"`
+	Memoryused                 int64  `json:"memoryused"`
+	Memorywithoverprovisioning string `json:"memorywithoverprovisioning"`
+	Name                       string `json:"name"`
+	Networkkbsread             int64  `json:"networkkbsread"`
+	Networkkbswrite            int64  `json:"networkkbswrite"`
+	Oscategoryid               string `json:"oscategoryid"`
+	Oscategoryname             string `json:"oscategoryname"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
+	Removed                    string `json:"removed"`
+	RequiresStorageMotion      bool   `json:"requiresStorageMotion"`
+	Resourcestate              string `json:"resourcestate"`
+	State                      string `json:"state"`
+	Suitableformigration       bool   `json:"suitableformigration"`
+	Type                       string `json:"type"`
+	Version                    string `json:"version"`
+	Zoneid                     string `json:"zoneid"`
+	Zonename                   string `json:"zonename"`
 }
 
 type ListDedicatedHostsParams struct {
@@ -1797,65 +1843,74 @@
 }
 
 type Host struct {
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
+	Annotation                 string                      `json:"annotation"`
+	Averageload                int64                       `json:"averageload"`
+	Capabilities               string                      `json:"capabilities"`
+	Clusterid                  string                      `json:"clusterid"`
+	Clustername                string                      `json:"clustername"`
+	Clustertype                string                      `json:"clustertype"`
+	Cpuallocated               string                      `json:"cpuallocated"`
+	Cpunumber                  int                         `json:"cpunumber"`
+	Cpusockets                 int                         `json:"cpusockets"`
+	Cpuspeed                   int64                       `json:"cpuspeed"`
+	Cpuused                    string                      `json:"cpuused"`
+	Cpuwithoverprovisioning    string                      `json:"cpuwithoverprovisioning"`
+	Created                    string                      `json:"created"`
+	Details                    map[string]string           `json:"details"`
+	Disconnected               string                      `json:"disconnected"`
+	Disksizeallocated          int64                       `json:"disksizeallocated"`
+	Disksizetotal              int64                       `json:"disksizetotal"`
+	Events                     string                      `json:"events"`
+	Gpugroup                   []HostGpugroup              `json:"gpugroup"`
+	Hahost                     bool                        `json:"hahost"`
+	Hasenoughcapacity          bool                        `json:"hasenoughcapacity"`
+	Hostha                     string                      `json:"hostha"`
+	Hosttags                   string                      `json:"hosttags"`
+	Hypervisor                 string                      `json:"hypervisor"`
+	Hypervisorversion          string                      `json:"hypervisorversion"`
+	Id                         string                      `json:"id"`
+	Ipaddress                  string                      `json:"ipaddress"`
+	Islocalstorageactive       bool                        `json:"islocalstorageactive"`
+	Lastannotated              string                      `json:"lastannotated"`
+	Lastpinged                 string                      `json:"lastpinged"`
+	Managementserverid         int64                       `json:"managementserverid"`
+	Memoryallocated            int64                       `json:"memoryallocated"`
+	Memorytotal                int64                       `json:"memorytotal"`
+	Memoryused                 int64                       `json:"memoryused"`
+	Memorywithoverprovisioning string                      `json:"memorywithoverprovisioning"`
+	Name                       string                      `json:"name"`
+	Networkkbsread             int64                       `json:"networkkbsread"`
+	Networkkbswrite            int64                       `json:"networkkbswrite"`
+	Oscategoryid               string                      `json:"oscategoryid"`
+	Oscategoryname             string                      `json:"oscategoryname"`
+	Outofbandmanagement        OutOfBandManagementResponse `json:"outofbandmanagement"`
+	Podid                      string                      `json:"podid"`
+	Podname                    string                      `json:"podname"`
+	Removed                    string                      `json:"removed"`
+	Resourcestate              string                      `json:"resourcestate"`
+	State                      string                      `json:"state"`
+	Suitableformigration       bool                        `json:"suitableformigration"`
+	Type                       string                      `json:"type"`
+	Username                   string                      `json:"username"`
+	Version                    string                      `json:"version"`
+	Zoneid                     string                      `json:"zoneid"`
+	Zonename                   string                      `json:"zonename"`
+}
+
+type HostGpugroup struct {
+	Gpugroupname string             `json:"gpugroupname"`
+	Vgpu         []HostGpugroupVgpu `json:"vgpu"`
+}
+
+type HostGpugroupVgpu struct {
+	Maxcapacity       int64  `json:"maxcapacity"`
+	Maxheads          int64  `json:"maxheads"`
+	Maxresolutionx    int64  `json:"maxresolutionx"`
+	Maxresolutiony    int64  `json:"maxresolutiony"`
+	Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
+	Remainingcapacity int64  `json:"remainingcapacity"`
+	Vgputype          string `json:"vgputype"`
+	Videoram          int64  `json:"videoram"`
 }
 
 type PrepareHostForMaintenanceParams struct {
@@ -1926,66 +1981,75 @@
 }
 
 type PrepareHostForMaintenanceResponse struct {
-	JobID                   string            `json:"jobid"`
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
+	JobID                      string                                      `json:"jobid"`
+	Annotation                 string                                      `json:"annotation"`
+	Averageload                int64                                       `json:"averageload"`
+	Capabilities               string                                      `json:"capabilities"`
+	Clusterid                  string                                      `json:"clusterid"`
+	Clustername                string                                      `json:"clustername"`
+	Clustertype                string                                      `json:"clustertype"`
+	Cpuallocated               string                                      `json:"cpuallocated"`
+	Cpunumber                  int                                         `json:"cpunumber"`
+	Cpusockets                 int                                         `json:"cpusockets"`
+	Cpuspeed                   int64                                       `json:"cpuspeed"`
+	Cpuused                    string                                      `json:"cpuused"`
+	Cpuwithoverprovisioning    string                                      `json:"cpuwithoverprovisioning"`
+	Created                    string                                      `json:"created"`
+	Details                    map[string]string                           `json:"details"`
+	Disconnected               string                                      `json:"disconnected"`
+	Disksizeallocated          int64                                       `json:"disksizeallocated"`
+	Disksizetotal              int64                                       `json:"disksizetotal"`
+	Events                     string                                      `json:"events"`
+	Gpugroup                   []PrepareHostForMaintenanceResponseGpugroup `json:"gpugroup"`
+	Hahost                     bool                                        `json:"hahost"`
+	Hasenoughcapacity          bool                                        `json:"hasenoughcapacity"`
+	Hostha                     string                                      `json:"hostha"`
+	Hosttags                   string                                      `json:"hosttags"`
+	Hypervisor                 string                                      `json:"hypervisor"`
+	Hypervisorversion          string                                      `json:"hypervisorversion"`
+	Id                         string                                      `json:"id"`
+	Ipaddress                  string                                      `json:"ipaddress"`
+	Islocalstorageactive       bool                                        `json:"islocalstorageactive"`
+	Lastannotated              string                                      `json:"lastannotated"`
+	Lastpinged                 string                                      `json:"lastpinged"`
+	Managementserverid         int64                                       `json:"managementserverid"`
+	Memoryallocated            int64                                       `json:"memoryallocated"`
+	Memorytotal                int64                                       `json:"memorytotal"`
+	Memoryused                 int64                                       `json:"memoryused"`
+	Memorywithoverprovisioning string                                      `json:"memorywithoverprovisioning"`
+	Name                       string                                      `json:"name"`
+	Networkkbsread             int64                                       `json:"networkkbsread"`
+	Networkkbswrite            int64                                       `json:"networkkbswrite"`
+	Oscategoryid               string                                      `json:"oscategoryid"`
+	Oscategoryname             string                                      `json:"oscategoryname"`
+	Outofbandmanagement        OutOfBandManagementResponse                 `json:"outofbandmanagement"`
+	Podid                      string                                      `json:"podid"`
+	Podname                    string                                      `json:"podname"`
+	Removed                    string                                      `json:"removed"`
+	Resourcestate              string                                      `json:"resourcestate"`
+	State                      string                                      `json:"state"`
+	Suitableformigration       bool                                        `json:"suitableformigration"`
+	Type                       string                                      `json:"type"`
+	Username                   string                                      `json:"username"`
+	Version                    string                                      `json:"version"`
+	Zoneid                     string                                      `json:"zoneid"`
+	Zonename                   string                                      `json:"zonename"`
+}
+
+type PrepareHostForMaintenanceResponseGpugroup struct {
+	Gpugroupname string                                          `json:"gpugroupname"`
+	Vgpu         []PrepareHostForMaintenanceResponseGpugroupVgpu `json:"vgpu"`
+}
+
+type PrepareHostForMaintenanceResponseGpugroupVgpu struct {
+	Maxcapacity       int64  `json:"maxcapacity"`
+	Maxheads          int64  `json:"maxheads"`
+	Maxresolutionx    int64  `json:"maxresolutionx"`
+	Maxresolutiony    int64  `json:"maxresolutiony"`
+	Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
+	Remainingcapacity int64  `json:"remainingcapacity"`
+	Vgputype          string `json:"vgputype"`
+	Videoram          int64  `json:"videoram"`
 }
 
 type ReconnectHostParams struct {
@@ -2056,66 +2120,75 @@
 }
 
 type ReconnectHostResponse struct {
-	JobID                   string            `json:"jobid"`
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
+	JobID                      string                          `json:"jobid"`
+	Annotation                 string                          `json:"annotation"`
+	Averageload                int64                           `json:"averageload"`
+	Capabilities               string                          `json:"capabilities"`
+	Clusterid                  string                          `json:"clusterid"`
+	Clustername                string                          `json:"clustername"`
+	Clustertype                string                          `json:"clustertype"`
+	Cpuallocated               string                          `json:"cpuallocated"`
+	Cpunumber                  int                             `json:"cpunumber"`
+	Cpusockets                 int                             `json:"cpusockets"`
+	Cpuspeed                   int64                           `json:"cpuspeed"`
+	Cpuused                    string                          `json:"cpuused"`
+	Cpuwithoverprovisioning    string                          `json:"cpuwithoverprovisioning"`
+	Created                    string                          `json:"created"`
+	Details                    map[string]string               `json:"details"`
+	Disconnected               string                          `json:"disconnected"`
+	Disksizeallocated          int64                           `json:"disksizeallocated"`
+	Disksizetotal              int64                           `json:"disksizetotal"`
+	Events                     string                          `json:"events"`
+	Gpugroup                   []ReconnectHostResponseGpugroup `json:"gpugroup"`
+	Hahost                     bool                            `json:"hahost"`
+	Hasenoughcapacity          bool                            `json:"hasenoughcapacity"`
+	Hostha                     string                          `json:"hostha"`
+	Hosttags                   string                          `json:"hosttags"`
+	Hypervisor                 string                          `json:"hypervisor"`
+	Hypervisorversion          string                          `json:"hypervisorversion"`
+	Id                         string                          `json:"id"`
+	Ipaddress                  string                          `json:"ipaddress"`
+	Islocalstorageactive       bool                            `json:"islocalstorageactive"`
+	Lastannotated              string                          `json:"lastannotated"`
+	Lastpinged                 string                          `json:"lastpinged"`
+	Managementserverid         int64                           `json:"managementserverid"`
+	Memoryallocated            int64                           `json:"memoryallocated"`
+	Memorytotal                int64                           `json:"memorytotal"`
+	Memoryused                 int64                           `json:"memoryused"`
+	Memorywithoverprovisioning string                          `json:"memorywithoverprovisioning"`
+	Name                       string                          `json:"name"`
+	Networkkbsread             int64                           `json:"networkkbsread"`
+	Networkkbswrite            int64                           `json:"networkkbswrite"`
+	Oscategoryid               string                          `json:"oscategoryid"`
+	Oscategoryname             string                          `json:"oscategoryname"`
+	Outofbandmanagement        OutOfBandManagementResponse     `json:"outofbandmanagement"`
+	Podid                      string                          `json:"podid"`
+	Podname                    string                          `json:"podname"`
+	Removed                    string                          `json:"removed"`
+	Resourcestate              string                          `json:"resourcestate"`
+	State                      string                          `json:"state"`
+	Suitableformigration       bool                            `json:"suitableformigration"`
+	Type                       string                          `json:"type"`
+	Username                   string                          `json:"username"`
+	Version                    string                          `json:"version"`
+	Zoneid                     string                          `json:"zoneid"`
+	Zonename                   string                          `json:"zonename"`
+}
+
+type ReconnectHostResponseGpugroup struct {
+	Gpugroupname string                              `json:"gpugroupname"`
+	Vgpu         []ReconnectHostResponseGpugroupVgpu `json:"vgpu"`
+}
+
+type ReconnectHostResponseGpugroupVgpu struct {
+	Maxcapacity       int64  `json:"maxcapacity"`
+	Maxheads          int64  `json:"maxheads"`
+	Maxresolutionx    int64  `json:"maxresolutionx"`
+	Maxresolutiony    int64  `json:"maxresolutiony"`
+	Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
+	Remainingcapacity int64  `json:"remainingcapacity"`
+	Vgputype          string `json:"vgputype"`
+	Videoram          int64  `json:"videoram"`
 }
 
 type ReleaseDedicatedHostParams struct {
@@ -2266,6 +2339,9 @@
 	if v, found := p.p["allocationstate"]; found {
 		u.Set("allocationstate", v.(string))
 	}
+	if v, found := p.p["annotation"]; found {
+		u.Set("annotation", v.(string))
+	}
 	if v, found := p.p["hosttags"]; found {
 		vv := strings.Join(v.([]string), ",")
 		u.Set("hosttags", vv)
@@ -2290,6 +2366,14 @@
 	return
 }
 
+func (p *UpdateHostParams) SetAnnotation(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["annotation"] = v
+	return
+}
+
 func (p *UpdateHostParams) SetHosttags(v []string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -2347,65 +2431,74 @@
 }
 
 type UpdateHostResponse struct {
-	Averageload             int64             `json:"averageload"`
-	Capabilities            string            `json:"capabilities"`
-	Clusterid               string            `json:"clusterid"`
-	Clustername             string            `json:"clustername"`
-	Clustertype             string            `json:"clustertype"`
-	Cpuallocated            string            `json:"cpuallocated"`
-	Cpunumber               int               `json:"cpunumber"`
-	Cpusockets              int               `json:"cpusockets"`
-	Cpuspeed                int64             `json:"cpuspeed"`
-	Cpuused                 string            `json:"cpuused"`
-	Cpuwithoverprovisioning string            `json:"cpuwithoverprovisioning"`
-	Created                 string            `json:"created"`
-	Details                 map[string]string `json:"details"`
-	Disconnected            string            `json:"disconnected"`
-	Disksizeallocated       int64             `json:"disksizeallocated"`
-	Disksizetotal           int64             `json:"disksizetotal"`
-	Events                  string            `json:"events"`
-	Gpugroup                []struct {
-		Gpugroupname string `json:"gpugroupname"`
-		Vgpu         []struct {
-			Maxcapacity       int64  `json:"maxcapacity"`
-			Maxheads          int64  `json:"maxheads"`
-			Maxresolutionx    int64  `json:"maxresolutionx"`
-			Maxresolutiony    int64  `json:"maxresolutiony"`
-			Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
-			Remainingcapacity int64  `json:"remainingcapacity"`
-			Vgputype          string `json:"vgputype"`
-			Videoram          int64  `json:"videoram"`
-		} `json:"vgpu"`
-	} `json:"gpugroup"`
-	Hahost               bool                        `json:"hahost"`
-	Hasenoughcapacity    bool                        `json:"hasenoughcapacity"`
-	Hosttags             string                      `json:"hosttags"`
-	Hypervisor           string                      `json:"hypervisor"`
-	Hypervisorversion    string                      `json:"hypervisorversion"`
-	Id                   string                      `json:"id"`
-	Ipaddress            string                      `json:"ipaddress"`
-	Islocalstorageactive bool                        `json:"islocalstorageactive"`
-	Lastpinged           string                      `json:"lastpinged"`
-	Managementserverid   int64                       `json:"managementserverid"`
-	Memoryallocated      int64                       `json:"memoryallocated"`
-	Memorytotal          int64                       `json:"memorytotal"`
-	Memoryused           int64                       `json:"memoryused"`
-	Name                 string                      `json:"name"`
-	Networkkbsread       int64                       `json:"networkkbsread"`
-	Networkkbswrite      int64                       `json:"networkkbswrite"`
-	Oscategoryid         string                      `json:"oscategoryid"`
-	Oscategoryname       string                      `json:"oscategoryname"`
-	Outofbandmanagement  OutOfBandManagementResponse `json:"outofbandmanagement"`
-	Podid                string                      `json:"podid"`
-	Podname              string                      `json:"podname"`
-	Removed              string                      `json:"removed"`
-	Resourcestate        string                      `json:"resourcestate"`
-	State                string                      `json:"state"`
-	Suitableformigration bool                        `json:"suitableformigration"`
-	Type                 string                      `json:"type"`
-	Version              string                      `json:"version"`
-	Zoneid               string                      `json:"zoneid"`
-	Zonename             string                      `json:"zonename"`
+	Annotation                 string                       `json:"annotation"`
+	Averageload                int64                        `json:"averageload"`
+	Capabilities               string                       `json:"capabilities"`
+	Clusterid                  string                       `json:"clusterid"`
+	Clustername                string                       `json:"clustername"`
+	Clustertype                string                       `json:"clustertype"`
+	Cpuallocated               string                       `json:"cpuallocated"`
+	Cpunumber                  int                          `json:"cpunumber"`
+	Cpusockets                 int                          `json:"cpusockets"`
+	Cpuspeed                   int64                        `json:"cpuspeed"`
+	Cpuused                    string                       `json:"cpuused"`
+	Cpuwithoverprovisioning    string                       `json:"cpuwithoverprovisioning"`
+	Created                    string                       `json:"created"`
+	Details                    map[string]string            `json:"details"`
+	Disconnected               string                       `json:"disconnected"`
+	Disksizeallocated          int64                        `json:"disksizeallocated"`
+	Disksizetotal              int64                        `json:"disksizetotal"`
+	Events                     string                       `json:"events"`
+	Gpugroup                   []UpdateHostResponseGpugroup `json:"gpugroup"`
+	Hahost                     bool                         `json:"hahost"`
+	Hasenoughcapacity          bool                         `json:"hasenoughcapacity"`
+	Hostha                     string                       `json:"hostha"`
+	Hosttags                   string                       `json:"hosttags"`
+	Hypervisor                 string                       `json:"hypervisor"`
+	Hypervisorversion          string                       `json:"hypervisorversion"`
+	Id                         string                       `json:"id"`
+	Ipaddress                  string                       `json:"ipaddress"`
+	Islocalstorageactive       bool                         `json:"islocalstorageactive"`
+	Lastannotated              string                       `json:"lastannotated"`
+	Lastpinged                 string                       `json:"lastpinged"`
+	Managementserverid         int64                        `json:"managementserverid"`
+	Memoryallocated            int64                        `json:"memoryallocated"`
+	Memorytotal                int64                        `json:"memorytotal"`
+	Memoryused                 int64                        `json:"memoryused"`
+	Memorywithoverprovisioning string                       `json:"memorywithoverprovisioning"`
+	Name                       string                       `json:"name"`
+	Networkkbsread             int64                        `json:"networkkbsread"`
+	Networkkbswrite            int64                        `json:"networkkbswrite"`
+	Oscategoryid               string                       `json:"oscategoryid"`
+	Oscategoryname             string                       `json:"oscategoryname"`
+	Outofbandmanagement        OutOfBandManagementResponse  `json:"outofbandmanagement"`
+	Podid                      string                       `json:"podid"`
+	Podname                    string                       `json:"podname"`
+	Removed                    string                       `json:"removed"`
+	Resourcestate              string                       `json:"resourcestate"`
+	State                      string                       `json:"state"`
+	Suitableformigration       bool                         `json:"suitableformigration"`
+	Type                       string                       `json:"type"`
+	Username                   string                       `json:"username"`
+	Version                    string                       `json:"version"`
+	Zoneid                     string                       `json:"zoneid"`
+	Zonename                   string                       `json:"zonename"`
+}
+
+type UpdateHostResponseGpugroup struct {
+	Gpugroupname string                           `json:"gpugroupname"`
+	Vgpu         []UpdateHostResponseGpugroupVgpu `json:"vgpu"`
+}
+
+type UpdateHostResponseGpugroupVgpu struct {
+	Maxcapacity       int64  `json:"maxcapacity"`
+	Maxheads          int64  `json:"maxheads"`
+	Maxresolutionx    int64  `json:"maxresolutionx"`
+	Maxresolutiony    int64  `json:"maxresolutiony"`
+	Maxvgpuperpgpu    int64  `json:"maxvgpuperpgpu"`
+	Remainingcapacity int64  `json:"remainingcapacity"`
+	Vgputype          string `json:"vgputype"`
+	Videoram          int64  `json:"videoram"`
 }
 
 type UpdateHostPasswordParams struct {
@@ -2503,5 +2596,24 @@
 
 type UpdateHostPasswordResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *UpdateHostPasswordResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias UpdateHostPasswordResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ISOService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ISOService.go
index 5393375..96db4bf 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ISOService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ISOService.go
@@ -104,173 +104,111 @@
 }
 
 type AttachIsoResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                           `json:"jobid"`
+	Account               string                           `json:"account"`
+	Affinitygroup         []AttachIsoResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                              `json:"cpunumber"`
+	Cpuspeed              int                              `json:"cpuspeed"`
+	Cpuused               string                           `json:"cpuused"`
+	Created               string                           `json:"created"`
+	Details               map[string]string                `json:"details"`
+	Diskioread            int64                            `json:"diskioread"`
+	Diskiowrite           int64                            `json:"diskiowrite"`
+	Diskkbsread           int64                            `json:"diskkbsread"`
+	Diskkbswrite          int64                            `json:"diskkbswrite"`
+	Diskofferingid        string                           `json:"diskofferingid"`
+	Diskofferingname      string                           `json:"diskofferingname"`
+	Displayname           string                           `json:"displayname"`
+	Displayvm             bool                             `json:"displayvm"`
+	Domain                string                           `json:"domain"`
+	Domainid              string                           `json:"domainid"`
+	Forvirtualnetwork     bool                             `json:"forvirtualnetwork"`
+	Group                 string                           `json:"group"`
+	Groupid               string                           `json:"groupid"`
+	Guestosid             string                           `json:"guestosid"`
+	Haenable              bool                             `json:"haenable"`
+	Hostid                string                           `json:"hostid"`
+	Hostname              string                           `json:"hostname"`
+	Hypervisor            string                           `json:"hypervisor"`
+	Id                    string                           `json:"id"`
+	Instancename          string                           `json:"instancename"`
+	Isdynamicallyscalable bool                             `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                           `json:"isodisplaytext"`
+	Isoid                 string                           `json:"isoid"`
+	Isoname               string                           `json:"isoname"`
+	Keypair               string                           `json:"keypair"`
+	Memory                int                              `json:"memory"`
+	Memoryintfreekbs      int64                            `json:"memoryintfreekbs"`
+	Memorykbs             int64                            `json:"memorykbs"`
+	Memorytargetkbs       int64                            `json:"memorytargetkbs"`
+	Name                  string                           `json:"name"`
+	Networkkbsread        int64                            `json:"networkkbsread"`
+	Networkkbswrite       int64                            `json:"networkkbswrite"`
+	Nic                   []Nic                            `json:"nic"`
+	Ostypeid              int64                            `json:"ostypeid"`
+	Password              string                           `json:"password"`
+	Passwordenabled       bool                             `json:"passwordenabled"`
+	Project               string                           `json:"project"`
+	Projectid             string                           `json:"projectid"`
+	Publicip              string                           `json:"publicip"`
+	Publicipid            string                           `json:"publicipid"`
+	Rootdeviceid          int64                            `json:"rootdeviceid"`
+	Rootdevicetype        string                           `json:"rootdevicetype"`
+	Securitygroup         []AttachIsoResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                           `json:"serviceofferingid"`
+	Serviceofferingname   string                           `json:"serviceofferingname"`
+	Servicestate          string                           `json:"servicestate"`
+	State                 string                           `json:"state"`
+	Templatedisplaytext   string                           `json:"templatedisplaytext"`
+	Templateid            string                           `json:"templateid"`
+	Templatename          string                           `json:"templatename"`
+	Userid                string                           `json:"userid"`
+	Username              string                           `json:"username"`
+	Vgpu                  string                           `json:"vgpu"`
+	Zoneid                string                           `json:"zoneid"`
+	Zonename              string                           `json:"zonename"`
+}
+
+type AttachIsoResponseSecuritygroup struct {
+	Account             string                               `json:"account"`
+	Description         string                               `json:"description"`
+	Domain              string                               `json:"domain"`
+	Domainid            string                               `json:"domainid"`
+	Egressrule          []AttachIsoResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                               `json:"id"`
+	Ingressrule         []AttachIsoResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                               `json:"name"`
+	Project             string                               `json:"project"`
+	Projectid           string                               `json:"projectid"`
+	Tags                []Tags                               `json:"tags"`
+	Virtualmachinecount int                                  `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                        `json:"virtualmachineids"`
+}
+
+type AttachIsoResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type AttachIsoResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type CopyIsoParams struct {
@@ -285,6 +223,10 @@
 	if v, found := p.p["destzoneid"]; found {
 		u.Set("destzoneid", v.(string))
 	}
+	if v, found := p.p["destzoneids"]; found {
+		vv := strings.Join(v.([]string), ",")
+		u.Set("destzoneids", vv)
+	}
 	if v, found := p.p["id"]; found {
 		u.Set("id", v.(string))
 	}
@@ -302,6 +244,14 @@
 	return
 }
 
+func (p *CopyIsoParams) SetDestzoneids(v []string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["destzoneids"] = v
+	return
+}
+
 func (p *CopyIsoParams) SetId(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -320,10 +270,9 @@
 
 // You should always use this function to get a new CopyIsoParams instance,
 // as then you are sure you have configured all required params
-func (s *ISOService) NewCopyIsoParams(destzoneid string, id string) *CopyIsoParams {
+func (s *ISOService) NewCopyIsoParams(id string) *CopyIsoParams {
 	p := &CopyIsoParams{}
 	p.p = make(map[string]interface{})
-	p.p["destzoneid"] = destzoneid
 	p.p["id"] = id
 	return p
 }
@@ -367,11 +316,14 @@
 	JobID                 string            `json:"jobid"`
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -388,7 +340,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -549,173 +503,111 @@
 }
 
 type DetachIsoResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                           `json:"jobid"`
+	Account               string                           `json:"account"`
+	Affinitygroup         []DetachIsoResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                              `json:"cpunumber"`
+	Cpuspeed              int                              `json:"cpuspeed"`
+	Cpuused               string                           `json:"cpuused"`
+	Created               string                           `json:"created"`
+	Details               map[string]string                `json:"details"`
+	Diskioread            int64                            `json:"diskioread"`
+	Diskiowrite           int64                            `json:"diskiowrite"`
+	Diskkbsread           int64                            `json:"diskkbsread"`
+	Diskkbswrite          int64                            `json:"diskkbswrite"`
+	Diskofferingid        string                           `json:"diskofferingid"`
+	Diskofferingname      string                           `json:"diskofferingname"`
+	Displayname           string                           `json:"displayname"`
+	Displayvm             bool                             `json:"displayvm"`
+	Domain                string                           `json:"domain"`
+	Domainid              string                           `json:"domainid"`
+	Forvirtualnetwork     bool                             `json:"forvirtualnetwork"`
+	Group                 string                           `json:"group"`
+	Groupid               string                           `json:"groupid"`
+	Guestosid             string                           `json:"guestosid"`
+	Haenable              bool                             `json:"haenable"`
+	Hostid                string                           `json:"hostid"`
+	Hostname              string                           `json:"hostname"`
+	Hypervisor            string                           `json:"hypervisor"`
+	Id                    string                           `json:"id"`
+	Instancename          string                           `json:"instancename"`
+	Isdynamicallyscalable bool                             `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                           `json:"isodisplaytext"`
+	Isoid                 string                           `json:"isoid"`
+	Isoname               string                           `json:"isoname"`
+	Keypair               string                           `json:"keypair"`
+	Memory                int                              `json:"memory"`
+	Memoryintfreekbs      int64                            `json:"memoryintfreekbs"`
+	Memorykbs             int64                            `json:"memorykbs"`
+	Memorytargetkbs       int64                            `json:"memorytargetkbs"`
+	Name                  string                           `json:"name"`
+	Networkkbsread        int64                            `json:"networkkbsread"`
+	Networkkbswrite       int64                            `json:"networkkbswrite"`
+	Nic                   []Nic                            `json:"nic"`
+	Ostypeid              int64                            `json:"ostypeid"`
+	Password              string                           `json:"password"`
+	Passwordenabled       bool                             `json:"passwordenabled"`
+	Project               string                           `json:"project"`
+	Projectid             string                           `json:"projectid"`
+	Publicip              string                           `json:"publicip"`
+	Publicipid            string                           `json:"publicipid"`
+	Rootdeviceid          int64                            `json:"rootdeviceid"`
+	Rootdevicetype        string                           `json:"rootdevicetype"`
+	Securitygroup         []DetachIsoResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                           `json:"serviceofferingid"`
+	Serviceofferingname   string                           `json:"serviceofferingname"`
+	Servicestate          string                           `json:"servicestate"`
+	State                 string                           `json:"state"`
+	Templatedisplaytext   string                           `json:"templatedisplaytext"`
+	Templateid            string                           `json:"templateid"`
+	Templatename          string                           `json:"templatename"`
+	Userid                string                           `json:"userid"`
+	Username              string                           `json:"username"`
+	Vgpu                  string                           `json:"vgpu"`
+	Zoneid                string                           `json:"zoneid"`
+	Zonename              string                           `json:"zonename"`
+}
+
+type DetachIsoResponseSecuritygroup struct {
+	Account             string                               `json:"account"`
+	Description         string                               `json:"description"`
+	Domain              string                               `json:"domain"`
+	Domainid            string                               `json:"domainid"`
+	Egressrule          []DetachIsoResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                               `json:"id"`
+	Ingressrule         []DetachIsoResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                               `json:"name"`
+	Project             string                               `json:"project"`
+	Projectid           string                               `json:"projectid"`
+	Tags                []Tags                               `json:"tags"`
+	Virtualmachinecount int                                  `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                        `json:"virtualmachineids"`
+}
+
+type DetachIsoResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type DetachIsoResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type ExtractIsoParams struct {
@@ -902,7 +794,7 @@
 	return nil, l.Count, fmt.Errorf("There is more then one result for IsoPermission UUID: %s!", id)
 }
 
-// List ISO visibility and all accounts that have permissions to view this ISO.
+// List iso visibility and all accounts that have permissions to view this iso.
 func (s *ISOService) ListIsoPermissions(p *ListIsoPermissionsParams) (*ListIsoPermissionsResponse, error) {
 	resp, err := s.cs.newRequest("listIsoPermissions", p.toURLValues())
 	if err != nil {
@@ -1269,11 +1161,14 @@
 type Iso struct {
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -1290,7 +1185,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -1323,6 +1220,10 @@
 	if v, found := p.p["checksum"]; found {
 		u.Set("checksum", v.(string))
 	}
+	if v, found := p.p["directdownload"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("directdownload", vv)
+	}
 	if v, found := p.p["displaytext"]; found {
 		u.Set("displaytext", v.(string))
 	}
@@ -1390,6 +1291,14 @@
 	return
 }
 
+func (p *RegisterIsoParams) SetDirectdownload(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["directdownload"] = v
+	return
+}
+
 func (p *RegisterIsoParams) SetDisplaytext(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1516,11 +1425,14 @@
 type RegisterIsoResponse struct {
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -1537,7 +1449,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -1564,6 +1478,10 @@
 		vv := strconv.FormatBool(v.(bool))
 		u.Set("bootable", vv)
 	}
+	if v, found := p.p["cleanupdetails"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("cleanupdetails", vv)
+	}
 	if v, found := p.p["details"]; found {
 		i := 0
 		for k, vv := range v.(map[string]string) {
@@ -1617,6 +1535,14 @@
 	return
 }
 
+func (p *UpdateIsoParams) SetCleanupdetails(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["cleanupdetails"] = v
+	return
+}
+
 func (p *UpdateIsoParams) SetDetails(v map[string]string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1732,11 +1658,14 @@
 type UpdateIsoResponse struct {
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -1753,7 +1682,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -1887,5 +1818,24 @@
 
 type UpdateIsoPermissionsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *UpdateIsoPermissionsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias UpdateIsoPermissionsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ImageStoreService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ImageStoreService.go
index 41dc41f..1f7b7fb 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ImageStoreService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ImageStoreService.go
@@ -120,15 +120,14 @@
 }
 
 type AddImageStoreResponse struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
 
 type AddImageStoreS3Params struct {
@@ -298,15 +297,14 @@
 }
 
 type AddImageStoreS3Response struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
 
 type CreateSecondaryStagingStoreParams struct {
@@ -405,15 +403,14 @@
 }
 
 type CreateSecondaryStagingStoreResponse struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
 
 type DeleteImageStoreParams struct {
@@ -465,7 +462,26 @@
 
 type DeleteImageStoreResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteImageStoreResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteImageStoreResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DeleteSecondaryStagingStoreParams struct {
@@ -517,7 +533,26 @@
 
 type DeleteSecondaryStagingStoreResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteSecondaryStagingStoreResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteSecondaryStagingStoreResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListImageStoresParams struct {
@@ -734,15 +769,14 @@
 }
 
 type ImageStore struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
 
 type ListSecondaryStagingStoresParams struct {
@@ -959,15 +993,14 @@
 }
 
 type SecondaryStagingStore struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
 
 type UpdateCloudToUseObjectStoreParams struct {
@@ -1055,13 +1088,12 @@
 }
 
 type UpdateCloudToUseObjectStoreResponse struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/InternalLBService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/InternalLBService.go
index 00a7e0e..64df1cd 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/InternalLBService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/InternalLBService.go
@@ -674,31 +674,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
@@ -815,31 +791,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
@@ -968,31 +920,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/LDAPService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/LDAPService.go
index 1188d20..baff790 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/LDAPService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/LDAPService.go
@@ -32,6 +32,9 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["domainid"]; found {
+		u.Set("domainid", v.(string))
+	}
 	if v, found := p.p["hostname"]; found {
 		u.Set("hostname", v.(string))
 	}
@@ -42,6 +45,14 @@
 	return u
 }
 
+func (p *AddLdapConfigurationParams) SetDomainid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["domainid"] = v
+	return
+}
+
 func (p *AddLdapConfigurationParams) SetHostname(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -84,6 +95,7 @@
 }
 
 type AddLdapConfigurationResponse struct {
+	Domainid string `json:"domainid"`
 	Hostname string `json:"hostname"`
 	Port     int    `json:"port"`
 }
@@ -97,12 +109,27 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["domainid"]; found {
+		u.Set("domainid", v.(string))
+	}
 	if v, found := p.p["hostname"]; found {
 		u.Set("hostname", v.(string))
 	}
+	if v, found := p.p["port"]; found {
+		vv := strconv.Itoa(v.(int))
+		u.Set("port", vv)
+	}
 	return u
 }
 
+func (p *DeleteLdapConfigurationParams) SetDomainid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["domainid"] = v
+	return
+}
+
 func (p *DeleteLdapConfigurationParams) SetHostname(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -111,6 +138,14 @@
 	return
 }
 
+func (p *DeleteLdapConfigurationParams) SetPort(v int) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["port"] = v
+	return
+}
+
 // You should always use this function to get a new DeleteLdapConfigurationParams instance,
 // as then you are sure you have configured all required params
 func (s *LDAPService) NewDeleteLdapConfigurationParams(hostname string) *DeleteLdapConfigurationParams {
@@ -136,6 +171,7 @@
 }
 
 type DeleteLdapConfigurationResponse struct {
+	Domainid string `json:"domainid"`
 	Hostname string `json:"hostname"`
 	Port     int    `json:"port"`
 }
@@ -435,7 +471,7 @@
 	return p
 }
 
-// Configure the LDAP context for this site.
+// (Deprecated, use addLdapConfiguration) Configure the LDAP context for this site.
 func (s *LDAPService) LdapConfig(p *LdapConfigParams) (*LdapConfigResponse, error) {
 	resp, err := s.cs.newRequest("ldapConfig", p.toURLValues())
 	if err != nil {
@@ -613,83 +649,86 @@
 }
 
 type LdapCreateAccountResponse struct {
-	Accountdetails            map[string]string `json:"accountdetails"`
-	Accounttype               int               `json:"accounttype"`
-	Cpuavailable              string            `json:"cpuavailable"`
-	Cpulimit                  string            `json:"cpulimit"`
-	Cputotal                  int64             `json:"cputotal"`
-	Defaultzoneid             string            `json:"defaultzoneid"`
-	Domain                    string            `json:"domain"`
-	Domainid                  string            `json:"domainid"`
-	Groups                    []string          `json:"groups"`
-	Id                        string            `json:"id"`
-	Ipavailable               string            `json:"ipavailable"`
-	Iplimit                   string            `json:"iplimit"`
-	Iptotal                   int64             `json:"iptotal"`
-	Iscleanuprequired         bool              `json:"iscleanuprequired"`
-	Isdefault                 bool              `json:"isdefault"`
-	Memoryavailable           string            `json:"memoryavailable"`
-	Memorylimit               string            `json:"memorylimit"`
-	Memorytotal               int64             `json:"memorytotal"`
-	Name                      string            `json:"name"`
-	Networkavailable          string            `json:"networkavailable"`
-	Networkdomain             string            `json:"networkdomain"`
-	Networklimit              string            `json:"networklimit"`
-	Networktotal              int64             `json:"networktotal"`
-	Primarystorageavailable   string            `json:"primarystorageavailable"`
-	Primarystoragelimit       string            `json:"primarystoragelimit"`
-	Primarystoragetotal       int64             `json:"primarystoragetotal"`
-	Projectavailable          string            `json:"projectavailable"`
-	Projectlimit              string            `json:"projectlimit"`
-	Projecttotal              int64             `json:"projecttotal"`
-	Receivedbytes             int64             `json:"receivedbytes"`
-	Roleid                    string            `json:"roleid"`
-	Rolename                  string            `json:"rolename"`
-	Roletype                  string            `json:"roletype"`
-	Secondarystorageavailable string            `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string            `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64             `json:"secondarystoragetotal"`
-	Sentbytes                 int64             `json:"sentbytes"`
-	Snapshotavailable         string            `json:"snapshotavailable"`
-	Snapshotlimit             string            `json:"snapshotlimit"`
-	Snapshottotal             int64             `json:"snapshottotal"`
-	State                     string            `json:"state"`
-	Templateavailable         string            `json:"templateavailable"`
-	Templatelimit             string            `json:"templatelimit"`
-	Templatetotal             int64             `json:"templatetotal"`
-	User                      []struct {
-		Account             string `json:"account"`
-		Accountid           string `json:"accountid"`
-		Accounttype         int    `json:"accounttype"`
-		Apikey              string `json:"apikey"`
-		Created             string `json:"created"`
-		Domain              string `json:"domain"`
-		Domainid            string `json:"domainid"`
-		Email               string `json:"email"`
-		Firstname           string `json:"firstname"`
-		Id                  string `json:"id"`
-		Iscallerchilddomain bool   `json:"iscallerchilddomain"`
-		Isdefault           bool   `json:"isdefault"`
-		Lastname            string `json:"lastname"`
-		Roleid              string `json:"roleid"`
-		Rolename            string `json:"rolename"`
-		Roletype            string `json:"roletype"`
-		Secretkey           string `json:"secretkey"`
-		State               string `json:"state"`
-		Timezone            string `json:"timezone"`
-		Username            string `json:"username"`
-	} `json:"user"`
-	Vmavailable     string `json:"vmavailable"`
-	Vmlimit         string `json:"vmlimit"`
-	Vmrunning       int    `json:"vmrunning"`
-	Vmstopped       int    `json:"vmstopped"`
-	Vmtotal         int64  `json:"vmtotal"`
-	Volumeavailable string `json:"volumeavailable"`
-	Volumelimit     string `json:"volumelimit"`
-	Volumetotal     int64  `json:"volumetotal"`
-	Vpcavailable    string `json:"vpcavailable"`
-	Vpclimit        string `json:"vpclimit"`
-	Vpctotal        int64  `json:"vpctotal"`
+	Accountdetails            map[string]string               `json:"accountdetails"`
+	Accounttype               int                             `json:"accounttype"`
+	Cpuavailable              string                          `json:"cpuavailable"`
+	Cpulimit                  string                          `json:"cpulimit"`
+	Cputotal                  int64                           `json:"cputotal"`
+	Defaultzoneid             string                          `json:"defaultzoneid"`
+	Domain                    string                          `json:"domain"`
+	Domainid                  string                          `json:"domainid"`
+	Groups                    []string                        `json:"groups"`
+	Id                        string                          `json:"id"`
+	Ipavailable               string                          `json:"ipavailable"`
+	Iplimit                   string                          `json:"iplimit"`
+	Iptotal                   int64                           `json:"iptotal"`
+	Iscleanuprequired         bool                            `json:"iscleanuprequired"`
+	Isdefault                 bool                            `json:"isdefault"`
+	Memoryavailable           string                          `json:"memoryavailable"`
+	Memorylimit               string                          `json:"memorylimit"`
+	Memorytotal               int64                           `json:"memorytotal"`
+	Name                      string                          `json:"name"`
+	Networkavailable          string                          `json:"networkavailable"`
+	Networkdomain             string                          `json:"networkdomain"`
+	Networklimit              string                          `json:"networklimit"`
+	Networktotal              int64                           `json:"networktotal"`
+	Primarystorageavailable   string                          `json:"primarystorageavailable"`
+	Primarystoragelimit       string                          `json:"primarystoragelimit"`
+	Primarystoragetotal       int64                           `json:"primarystoragetotal"`
+	Projectavailable          string                          `json:"projectavailable"`
+	Projectlimit              string                          `json:"projectlimit"`
+	Projecttotal              int64                           `json:"projecttotal"`
+	Receivedbytes             int64                           `json:"receivedbytes"`
+	Roleid                    string                          `json:"roleid"`
+	Rolename                  string                          `json:"rolename"`
+	Roletype                  string                          `json:"roletype"`
+	Secondarystorageavailable string                          `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string                          `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64                         `json:"secondarystoragetotal"`
+	Sentbytes                 int64                           `json:"sentbytes"`
+	Snapshotavailable         string                          `json:"snapshotavailable"`
+	Snapshotlimit             string                          `json:"snapshotlimit"`
+	Snapshottotal             int64                           `json:"snapshottotal"`
+	State                     string                          `json:"state"`
+	Templateavailable         string                          `json:"templateavailable"`
+	Templatelimit             string                          `json:"templatelimit"`
+	Templatetotal             int64                           `json:"templatetotal"`
+	User                      []LdapCreateAccountResponseUser `json:"user"`
+	Vmavailable               string                          `json:"vmavailable"`
+	Vmlimit                   string                          `json:"vmlimit"`
+	Vmrunning                 int                             `json:"vmrunning"`
+	Vmstopped                 int                             `json:"vmstopped"`
+	Vmtotal                   int64                           `json:"vmtotal"`
+	Volumeavailable           string                          `json:"volumeavailable"`
+	Volumelimit               string                          `json:"volumelimit"`
+	Volumetotal               int64                           `json:"volumetotal"`
+	Vpcavailable              string                          `json:"vpcavailable"`
+	Vpclimit                  string                          `json:"vpclimit"`
+	Vpctotal                  int64                           `json:"vpctotal"`
+}
+
+type LdapCreateAccountResponseUser struct {
+	Account             string `json:"account"`
+	Accountid           string `json:"accountid"`
+	Accounttype         int    `json:"accounttype"`
+	Apikey              string `json:"apikey"`
+	Created             string `json:"created"`
+	Domain              string `json:"domain"`
+	Domainid            string `json:"domainid"`
+	Email               string `json:"email"`
+	Firstname           string `json:"firstname"`
+	Id                  string `json:"id"`
+	Iscallerchilddomain bool   `json:"iscallerchilddomain"`
+	Isdefault           bool   `json:"isdefault"`
+	Lastname            string `json:"lastname"`
+	Roleid              string `json:"roleid"`
+	Rolename            string `json:"rolename"`
+	Roletype            string `json:"roletype"`
+	Secretkey           string `json:"secretkey"`
+	State               string `json:"state"`
+	Timezone            string `json:"timezone"`
+	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type LdapRemoveParams struct {
@@ -712,7 +751,7 @@
 	return p
 }
 
-// Remove the LDAP context for this site.
+// (Deprecated , use deleteLdapConfiguration) Remove the LDAP context for this site.
 func (s *LDAPService) LdapRemove(p *LdapRemoveParams) (*LdapRemoveResponse, error) {
 	resp, err := s.cs.newRequest("ldapRemove", p.toURLValues())
 	if err != nil {
@@ -756,6 +795,9 @@
 	if v, found := p.p["domainid"]; found {
 		u.Set("domainid", v.(string))
 	}
+	if v, found := p.p["ldapdomain"]; found {
+		u.Set("ldapdomain", v.(string))
+	}
 	if v, found := p.p["name"]; found {
 		u.Set("name", v.(string))
 	}
@@ -789,6 +831,14 @@
 	return
 }
 
+func (p *LinkDomainToLdapParams) SetLdapdomain(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["ldapdomain"] = v
+	return
+}
+
 func (p *LinkDomainToLdapParams) SetName(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -807,12 +857,11 @@
 
 // You should always use this function to get a new LinkDomainToLdapParams instance,
 // as then you are sure you have configured all required params
-func (s *LDAPService) NewLinkDomainToLdapParams(accounttype int, domainid string, name string, lDAPType string) *LinkDomainToLdapParams {
+func (s *LDAPService) NewLinkDomainToLdapParams(accounttype int, domainid string, lDAPType string) *LinkDomainToLdapParams {
 	p := &LinkDomainToLdapParams{}
 	p.p = make(map[string]interface{})
 	p.p["accounttype"] = accounttype
 	p.p["domainid"] = domainid
-	p.p["name"] = name
 	p.p["type"] = lDAPType
 	return p
 }
@@ -835,7 +884,8 @@
 type LinkDomainToLdapResponse struct {
 	Accountid   string `json:"accountid"`
 	Accounttype int    `json:"accounttype"`
-	Domainid    int64  `json:"domainid"`
+	Domainid    string `json:"domainid"`
+	Ldapdomain  string `json:"ldapdomain"`
 	Name        string `json:"name"`
 	Type        string `json:"type"`
 }
@@ -849,6 +899,9 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["domainid"]; found {
+		u.Set("domainid", v.(string))
+	}
 	if v, found := p.p["hostname"]; found {
 		u.Set("hostname", v.(string))
 	}
@@ -870,6 +923,14 @@
 	return u
 }
 
+func (p *ListLdapConfigurationsParams) SetDomainid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["domainid"] = v
+	return
+}
+
 func (p *ListLdapConfigurationsParams) SetHostname(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -939,6 +1000,7 @@
 }
 
 type LdapConfiguration struct {
+	Domainid string `json:"domainid"`
 	Hostname string `json:"hostname"`
 	Port     int    `json:"port"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/LimitService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/LimitService.go
index 79deffe..2351271 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/LimitService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/LimitService.go
@@ -110,6 +110,9 @@
 		vv := strconv.Itoa(v.(int))
 		u.Set("resourcetype", vv)
 	}
+	if v, found := p.p["resourcetypename"]; found {
+		u.Set("resourcetypename", v.(string))
+	}
 	return u
 }
 
@@ -193,6 +196,14 @@
 	return
 }
 
+func (p *ListResourceLimitsParams) SetResourcetypename(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["resourcetypename"] = v
+	return
+}
+
 // You should always use this function to get a new ListResourceLimitsParams instance,
 // as then you are sure you have configured all required params
 func (s *LimitService) NewListResourceLimitsParams() *ListResourceLimitsParams {
@@ -222,13 +233,14 @@
 }
 
 type ResourceLimit struct {
-	Account      string `json:"account"`
-	Domain       string `json:"domain"`
-	Domainid     string `json:"domainid"`
-	Max          int64  `json:"max"`
-	Project      string `json:"project"`
-	Projectid    string `json:"projectid"`
-	Resourcetype string `json:"resourcetype"`
+	Account          string `json:"account"`
+	Domain           string `json:"domain"`
+	Domainid         string `json:"domainid"`
+	Max              int64  `json:"max"`
+	Project          string `json:"project"`
+	Projectid        string `json:"projectid"`
+	Resourcetype     string `json:"resourcetype"`
+	Resourcetypename string `json:"resourcetypename"`
 }
 
 type ResetApiLimitParams struct {
@@ -367,13 +379,14 @@
 }
 
 type UpdateResourceCountResponse struct {
-	Account       string `json:"account"`
-	Domain        string `json:"domain"`
-	Domainid      string `json:"domainid"`
-	Project       string `json:"project"`
-	Projectid     string `json:"projectid"`
-	Resourcecount int64  `json:"resourcecount"`
-	Resourcetype  string `json:"resourcetype"`
+	Account          string `json:"account"`
+	Domain           string `json:"domain"`
+	Domainid         string `json:"domainid"`
+	Project          string `json:"project"`
+	Projectid        string `json:"projectid"`
+	Resourcecount    int64  `json:"resourcecount"`
+	Resourcetype     string `json:"resourcetype"`
+	Resourcetypename string `json:"resourcetypename"`
 }
 
 type UpdateResourceLimitParams struct {
@@ -470,11 +483,12 @@
 }
 
 type UpdateResourceLimitResponse struct {
-	Account      string `json:"account"`
-	Domain       string `json:"domain"`
-	Domainid     string `json:"domainid"`
-	Max          int64  `json:"max"`
-	Project      string `json:"project"`
-	Projectid    string `json:"projectid"`
-	Resourcetype string `json:"resourcetype"`
+	Account          string `json:"account"`
+	Domain           string `json:"domain"`
+	Domainid         string `json:"domainid"`
+	Max              int64  `json:"max"`
+	Project          string `json:"project"`
+	Projectid        string `json:"projectid"`
+	Resourcetype     string `json:"resourcetype"`
+	Resourcetypename string `json:"resourcetypename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/LoadBalancerService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/LoadBalancerService.go
index 6d95967..e74e3a3 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/LoadBalancerService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/LoadBalancerService.go
@@ -24,135 +24,6 @@
 	"strings"
 )
 
-type AddF5LoadBalancerParams struct {
-	p map[string]interface{}
-}
-
-func (p *AddF5LoadBalancerParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["networkdevicetype"]; found {
-		u.Set("networkdevicetype", v.(string))
-	}
-	if v, found := p.p["password"]; found {
-		u.Set("password", v.(string))
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	if v, found := p.p["url"]; found {
-		u.Set("url", v.(string))
-	}
-	if v, found := p.p["username"]; found {
-		u.Set("username", v.(string))
-	}
-	return u
-}
-
-func (p *AddF5LoadBalancerParams) SetNetworkdevicetype(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["networkdevicetype"] = v
-	return
-}
-
-func (p *AddF5LoadBalancerParams) SetPassword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["password"] = v
-	return
-}
-
-func (p *AddF5LoadBalancerParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-func (p *AddF5LoadBalancerParams) SetUrl(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["url"] = v
-	return
-}
-
-func (p *AddF5LoadBalancerParams) SetUsername(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["username"] = v
-	return
-}
-
-// You should always use this function to get a new AddF5LoadBalancerParams instance,
-// as then you are sure you have configured all required params
-func (s *LoadBalancerService) NewAddF5LoadBalancerParams(networkdevicetype string, password string, physicalnetworkid string, url string, username string) *AddF5LoadBalancerParams {
-	p := &AddF5LoadBalancerParams{}
-	p.p = make(map[string]interface{})
-	p.p["networkdevicetype"] = networkdevicetype
-	p.p["password"] = password
-	p.p["physicalnetworkid"] = physicalnetworkid
-	p.p["url"] = url
-	p.p["username"] = username
-	return p
-}
-
-// Adds a F5 BigIP load balancer device
-func (s *LoadBalancerService) AddF5LoadBalancer(p *AddF5LoadBalancerParams) (*AddF5LoadBalancerResponse, error) {
-	resp, err := s.cs.newRequest("addF5LoadBalancer", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r AddF5LoadBalancerResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		b, err = getRawValue(b)
-		if err != nil {
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type AddF5LoadBalancerResponse struct {
-	JobID             string `json:"jobid"`
-	Ipaddress         string `json:"ipaddress"`
-	Lbdevicecapacity  int64  `json:"lbdevicecapacity"`
-	Lbdevicededicated bool   `json:"lbdevicededicated"`
-	Lbdeviceid        string `json:"lbdeviceid"`
-	Lbdevicename      string `json:"lbdevicename"`
-	Lbdevicestate     string `json:"lbdevicestate"`
-	Physicalnetworkid string `json:"physicalnetworkid"`
-	Privateinterface  string `json:"privateinterface"`
-	Provider          string `json:"provider"`
-	Publicinterface   string `json:"publicinterface"`
-}
-
 type AddNetscalerLoadBalancerParams struct {
 	p map[string]interface{}
 }
@@ -606,99 +477,6 @@
 	Success     bool   `json:"success"`
 }
 
-type ConfigureF5LoadBalancerParams struct {
-	p map[string]interface{}
-}
-
-func (p *ConfigureF5LoadBalancerParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["lbdevicecapacity"]; found {
-		vv := strconv.FormatInt(v.(int64), 10)
-		u.Set("lbdevicecapacity", vv)
-	}
-	if v, found := p.p["lbdeviceid"]; found {
-		u.Set("lbdeviceid", v.(string))
-	}
-	return u
-}
-
-func (p *ConfigureF5LoadBalancerParams) SetLbdevicecapacity(v int64) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["lbdevicecapacity"] = v
-	return
-}
-
-func (p *ConfigureF5LoadBalancerParams) SetLbdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["lbdeviceid"] = v
-	return
-}
-
-// You should always use this function to get a new ConfigureF5LoadBalancerParams instance,
-// as then you are sure you have configured all required params
-func (s *LoadBalancerService) NewConfigureF5LoadBalancerParams(lbdeviceid string) *ConfigureF5LoadBalancerParams {
-	p := &ConfigureF5LoadBalancerParams{}
-	p.p = make(map[string]interface{})
-	p.p["lbdeviceid"] = lbdeviceid
-	return p
-}
-
-// configures a F5 load balancer device
-func (s *LoadBalancerService) ConfigureF5LoadBalancer(p *ConfigureF5LoadBalancerParams) (*F5LoadBalancerResponse, error) {
-	resp, err := s.cs.newRequest("configureF5LoadBalancer", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r F5LoadBalancerResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		b, err = getRawValue(b)
-		if err != nil {
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type F5LoadBalancerResponse struct {
-	JobID             string `json:"jobid"`
-	Ipaddress         string `json:"ipaddress"`
-	Lbdevicecapacity  int64  `json:"lbdevicecapacity"`
-	Lbdevicededicated bool   `json:"lbdevicededicated"`
-	Lbdeviceid        string `json:"lbdeviceid"`
-	Lbdevicename      string `json:"lbdevicename"`
-	Lbdevicestate     string `json:"lbdevicestate"`
-	Physicalnetworkid string `json:"physicalnetworkid"`
-	Privateinterface  string `json:"privateinterface"`
-	Provider          string `json:"provider"`
-	Publicinterface   string `json:"publicinterface"`
-}
-
 type ConfigureNetscalerLoadBalancerParams struct {
 	p map[string]interface{}
 }
@@ -993,53 +771,45 @@
 }
 
 type CreateGlobalLoadBalancerRuleResponse struct {
-	JobID                       string `json:"jobid"`
-	Account                     string `json:"account"`
-	Description                 string `json:"description"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gslbdomainname              string `json:"gslbdomainname"`
-	Gslblbmethod                string `json:"gslblbmethod"`
-	Gslbservicetype             string `json:"gslbservicetype"`
-	Gslbstickysessionmethodname string `json:"gslbstickysessionmethodname"`
-	Id                          string `json:"id"`
-	Loadbalancerrule            []struct {
-		Account     string `json:"account"`
-		Algorithm   string `json:"algorithm"`
-		Cidrlist    string `json:"cidrlist"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Fordisplay  bool   `json:"fordisplay"`
-		Id          string `json:"id"`
-		Name        string `json:"name"`
-		Networkid   string `json:"networkid"`
-		Privateport string `json:"privateport"`
-		Project     string `json:"project"`
-		Projectid   string `json:"projectid"`
-		Protocol    string `json:"protocol"`
-		Publicip    string `json:"publicip"`
-		Publicipid  string `json:"publicipid"`
-		Publicport  string `json:"publicport"`
-		State       string `json:"state"`
-		Tags        []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Zoneid string `json:"zoneid"`
-	} `json:"loadbalancerrule"`
-	Name      string `json:"name"`
-	Project   string `json:"project"`
-	Projectid string `json:"projectid"`
-	Regionid  int    `json:"regionid"`
+	JobID                       string                                                 `json:"jobid"`
+	Account                     string                                                 `json:"account"`
+	Description                 string                                                 `json:"description"`
+	Domain                      string                                                 `json:"domain"`
+	Domainid                    string                                                 `json:"domainid"`
+	Gslbdomainname              string                                                 `json:"gslbdomainname"`
+	Gslblbmethod                string                                                 `json:"gslblbmethod"`
+	Gslbservicetype             string                                                 `json:"gslbservicetype"`
+	Gslbstickysessionmethodname string                                                 `json:"gslbstickysessionmethodname"`
+	Id                          string                                                 `json:"id"`
+	Loadbalancerrule            []CreateGlobalLoadBalancerRuleResponseLoadbalancerrule `json:"loadbalancerrule"`
+	Name                        string                                                 `json:"name"`
+	Project                     string                                                 `json:"project"`
+	Projectid                   string                                                 `json:"projectid"`
+	Regionid                    int                                                    `json:"regionid"`
+}
+
+type CreateGlobalLoadBalancerRuleResponseLoadbalancerrule struct {
+	Account     string `json:"account"`
+	Algorithm   string `json:"algorithm"`
+	Cidrlist    string `json:"cidrlist"`
+	Description string `json:"description"`
+	Domain      string `json:"domain"`
+	Domainid    string `json:"domainid"`
+	Fordisplay  bool   `json:"fordisplay"`
+	Id          string `json:"id"`
+	Name        string `json:"name"`
+	Networkid   string `json:"networkid"`
+	Privateport string `json:"privateport"`
+	Project     string `json:"project"`
+	Projectid   string `json:"projectid"`
+	Protocol    string `json:"protocol"`
+	Publicip    string `json:"publicip"`
+	Publicipid  string `json:"publicipid"`
+	Publicport  string `json:"publicport"`
+	State       string `json:"state"`
+	Tags        []Tags `json:"tags"`
+	Zoneid      string `json:"zoneid"`
+	Zonename    string `json:"zonename"`
 }
 
 type CreateLBHealthCheckPolicyParams struct {
@@ -1192,23 +962,25 @@
 }
 
 type CreateLBHealthCheckPolicyResponse struct {
-	JobID             string `json:"jobid"`
-	Account           string `json:"account"`
-	Domain            string `json:"domain"`
-	Domainid          string `json:"domainid"`
-	Healthcheckpolicy []struct {
-		Description             string `json:"description"`
-		Fordisplay              bool   `json:"fordisplay"`
-		Healthcheckinterval     int    `json:"healthcheckinterval"`
-		Healthcheckthresshold   int    `json:"healthcheckthresshold"`
-		Id                      string `json:"id"`
-		Pingpath                string `json:"pingpath"`
-		Responsetime            int    `json:"responsetime"`
-		State                   string `json:"state"`
-		Unhealthcheckthresshold int    `json:"unhealthcheckthresshold"`
-	} `json:"healthcheckpolicy"`
-	Lbruleid string `json:"lbruleid"`
-	Zoneid   string `json:"zoneid"`
+	JobID             string                                               `json:"jobid"`
+	Account           string                                               `json:"account"`
+	Domain            string                                               `json:"domain"`
+	Domainid          string                                               `json:"domainid"`
+	Healthcheckpolicy []CreateLBHealthCheckPolicyResponseHealthcheckpolicy `json:"healthcheckpolicy"`
+	Lbruleid          string                                               `json:"lbruleid"`
+	Zoneid            string                                               `json:"zoneid"`
+}
+
+type CreateLBHealthCheckPolicyResponseHealthcheckpolicy struct {
+	Description             string `json:"description"`
+	Fordisplay              bool   `json:"fordisplay"`
+	Healthcheckinterval     int    `json:"healthcheckinterval"`
+	Healthcheckthresshold   int    `json:"healthcheckthresshold"`
+	Id                      string `json:"id"`
+	Pingpath                string `json:"pingpath"`
+	Responsetime            int    `json:"responsetime"`
+	State                   string `json:"state"`
+	Unhealthcheckthresshold int    `json:"unhealthcheckthresshold"`
 }
 
 type CreateLBStickinessPolicyParams struct {
@@ -1342,24 +1114,26 @@
 }
 
 type CreateLBStickinessPolicyResponse struct {
-	JobID            string `json:"jobid"`
-	Account          string `json:"account"`
-	Description      string `json:"description"`
-	Domain           string `json:"domain"`
-	Domainid         string `json:"domainid"`
-	Lbruleid         string `json:"lbruleid"`
-	Name             string `json:"name"`
-	State            string `json:"state"`
-	Stickinesspolicy []struct {
-		Description string            `json:"description"`
-		Fordisplay  bool              `json:"fordisplay"`
-		Id          string            `json:"id"`
-		Methodname  string            `json:"methodname"`
-		Name        string            `json:"name"`
-		Params      map[string]string `json:"params"`
-		State       string            `json:"state"`
-	} `json:"stickinesspolicy"`
-	Zoneid string `json:"zoneid"`
+	JobID            string                                             `json:"jobid"`
+	Account          string                                             `json:"account"`
+	Description      string                                             `json:"description"`
+	Domain           string                                             `json:"domain"`
+	Domainid         string                                             `json:"domainid"`
+	Lbruleid         string                                             `json:"lbruleid"`
+	Name             string                                             `json:"name"`
+	State            string                                             `json:"state"`
+	Stickinesspolicy []CreateLBStickinessPolicyResponseStickinesspolicy `json:"stickinesspolicy"`
+	Zoneid           string                                             `json:"zoneid"`
+}
+
+type CreateLBStickinessPolicyResponseStickinesspolicy struct {
+	Description string            `json:"description"`
+	Fordisplay  bool              `json:"fordisplay"`
+	Id          string            `json:"id"`
+	Methodname  string            `json:"methodname"`
+	Name        string            `json:"name"`
+	Params      map[string]string `json:"params"`
+	State       string            `json:"state"`
 }
 
 type CreateLoadBalancerParams struct {
@@ -1538,43 +1312,36 @@
 }
 
 type CreateLoadBalancerResponse struct {
-	JobID                string `json:"jobid"`
-	Account              string `json:"account"`
-	Algorithm            string `json:"algorithm"`
-	Description          string `json:"description"`
-	Domain               string `json:"domain"`
-	Domainid             string `json:"domainid"`
-	Fordisplay           bool   `json:"fordisplay"`
-	Id                   string `json:"id"`
-	Loadbalancerinstance []struct {
-		Id        string `json:"id"`
-		Ipaddress string `json:"ipaddress"`
-		Name      string `json:"name"`
-		State     string `json:"state"`
-	} `json:"loadbalancerinstance"`
-	Loadbalancerrule []struct {
-		Instanceport int    `json:"instanceport"`
-		Sourceport   int    `json:"sourceport"`
-		State        string `json:"state"`
-	} `json:"loadbalancerrule"`
-	Name                     string `json:"name"`
-	Networkid                string `json:"networkid"`
-	Project                  string `json:"project"`
-	Projectid                string `json:"projectid"`
-	Sourceipaddress          string `json:"sourceipaddress"`
-	Sourceipaddressnetworkid string `json:"sourceipaddressnetworkid"`
-	Tags                     []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                    string                                           `json:"jobid"`
+	Account                  string                                           `json:"account"`
+	Algorithm                string                                           `json:"algorithm"`
+	Description              string                                           `json:"description"`
+	Domain                   string                                           `json:"domain"`
+	Domainid                 string                                           `json:"domainid"`
+	Fordisplay               bool                                             `json:"fordisplay"`
+	Id                       string                                           `json:"id"`
+	Loadbalancerinstance     []CreateLoadBalancerResponseLoadbalancerinstance `json:"loadbalancerinstance"`
+	Loadbalancerrule         []CreateLoadBalancerResponseLoadbalancerrule     `json:"loadbalancerrule"`
+	Name                     string                                           `json:"name"`
+	Networkid                string                                           `json:"networkid"`
+	Project                  string                                           `json:"project"`
+	Projectid                string                                           `json:"projectid"`
+	Sourceipaddress          string                                           `json:"sourceipaddress"`
+	Sourceipaddressnetworkid string                                           `json:"sourceipaddressnetworkid"`
+	Tags                     []Tags                                           `json:"tags"`
+}
+
+type CreateLoadBalancerResponseLoadbalancerrule struct {
+	Instanceport int    `json:"instanceport"`
+	Sourceport   int    `json:"sourceport"`
+	State        string `json:"state"`
+}
+
+type CreateLoadBalancerResponseLoadbalancerinstance struct {
+	Id        string `json:"id"`
+	Ipaddress string `json:"ipaddress"`
+	Name      string `json:"name"`
+	State     string `json:"state"`
 }
 
 type CreateLoadBalancerRuleParams struct {
@@ -1815,87 +1582,9 @@
 	Publicipid  string `json:"publicipid"`
 	Publicport  string `json:"publicport"`
 	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Zoneid string `json:"zoneid"`
-}
-
-type DeleteF5LoadBalancerParams struct {
-	p map[string]interface{}
-}
-
-func (p *DeleteF5LoadBalancerParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["lbdeviceid"]; found {
-		u.Set("lbdeviceid", v.(string))
-	}
-	return u
-}
-
-func (p *DeleteF5LoadBalancerParams) SetLbdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["lbdeviceid"] = v
-	return
-}
-
-// You should always use this function to get a new DeleteF5LoadBalancerParams instance,
-// as then you are sure you have configured all required params
-func (s *LoadBalancerService) NewDeleteF5LoadBalancerParams(lbdeviceid string) *DeleteF5LoadBalancerParams {
-	p := &DeleteF5LoadBalancerParams{}
-	p.p = make(map[string]interface{})
-	p.p["lbdeviceid"] = lbdeviceid
-	return p
-}
-
-//  delete a F5 load balancer device
-func (s *LoadBalancerService) DeleteF5LoadBalancer(p *DeleteF5LoadBalancerParams) (*DeleteF5LoadBalancerResponse, error) {
-	resp, err := s.cs.newRequest("deleteF5LoadBalancer", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r DeleteF5LoadBalancerResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	// If we have a async client, we need to wait for the async result
-	if s.cs.async {
-		b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
-		if err != nil {
-			if err == AsyncTimeoutErr {
-				return &r, err
-			}
-			return nil, err
-		}
-
-		if err := json.Unmarshal(b, &r); err != nil {
-			return nil, err
-		}
-	}
-
-	return &r, nil
-}
-
-type DeleteF5LoadBalancerResponse struct {
-	JobID       string `json:"jobid"`
-	Displaytext string `json:"displaytext"`
-	Success     bool   `json:"success"`
+	Tags        []Tags `json:"tags"`
+	Zoneid      string `json:"zoneid"`
+	Zonename    string `json:"zonename"`
 }
 
 type DeleteGlobalLoadBalancerRuleParams struct {
@@ -2355,117 +2044,26 @@
 
 type DeleteSslCertResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
 }
 
-type ListF5LoadBalancersParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListF5LoadBalancersParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["lbdeviceid"]; found {
-		u.Set("lbdeviceid", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["physicalnetworkid"]; found {
-		u.Set("physicalnetworkid", v.(string))
-	}
-	return u
-}
-
-func (p *ListF5LoadBalancersParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListF5LoadBalancersParams) SetLbdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["lbdeviceid"] = v
-	return
-}
-
-func (p *ListF5LoadBalancersParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListF5LoadBalancersParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListF5LoadBalancersParams) SetPhysicalnetworkid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["physicalnetworkid"] = v
-	return
-}
-
-// You should always use this function to get a new ListF5LoadBalancersParams instance,
-// as then you are sure you have configured all required params
-func (s *LoadBalancerService) NewListF5LoadBalancersParams() *ListF5LoadBalancersParams {
-	p := &ListF5LoadBalancersParams{}
-	p.p = make(map[string]interface{})
-	return p
-}
-
-// lists F5 load balancer devices
-func (s *LoadBalancerService) ListF5LoadBalancers(p *ListF5LoadBalancersParams) (*ListF5LoadBalancersResponse, error) {
-	resp, err := s.cs.newRequest("listF5LoadBalancers", p.toURLValues())
+func (r *DeleteSslCertResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
 	if err != nil {
-		return nil, err
+		return err
 	}
 
-	var r ListF5LoadBalancersResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
 	}
 
-	return &r, nil
-}
-
-type ListF5LoadBalancersResponse struct {
-	Count           int               `json:"count"`
-	F5LoadBalancers []*F5LoadBalancer `json:"f5loadbalancer"`
-}
-
-type F5LoadBalancer struct {
-	Ipaddress         string `json:"ipaddress"`
-	Lbdevicecapacity  int64  `json:"lbdevicecapacity"`
-	Lbdevicededicated bool   `json:"lbdevicededicated"`
-	Lbdeviceid        string `json:"lbdeviceid"`
-	Lbdevicename      string `json:"lbdevicename"`
-	Lbdevicestate     string `json:"lbdevicestate"`
-	Physicalnetworkid string `json:"physicalnetworkid"`
-	Privateinterface  string `json:"privateinterface"`
-	Provider          string `json:"provider"`
-	Publicinterface   string `json:"publicinterface"`
+	type alias DeleteSslCertResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListGlobalLoadBalancerRulesParams struct {
@@ -2723,52 +2321,44 @@
 }
 
 type GlobalLoadBalancerRule struct {
-	Account                     string `json:"account"`
-	Description                 string `json:"description"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gslbdomainname              string `json:"gslbdomainname"`
-	Gslblbmethod                string `json:"gslblbmethod"`
-	Gslbservicetype             string `json:"gslbservicetype"`
-	Gslbstickysessionmethodname string `json:"gslbstickysessionmethodname"`
-	Id                          string `json:"id"`
-	Loadbalancerrule            []struct {
-		Account     string `json:"account"`
-		Algorithm   string `json:"algorithm"`
-		Cidrlist    string `json:"cidrlist"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Fordisplay  bool   `json:"fordisplay"`
-		Id          string `json:"id"`
-		Name        string `json:"name"`
-		Networkid   string `json:"networkid"`
-		Privateport string `json:"privateport"`
-		Project     string `json:"project"`
-		Projectid   string `json:"projectid"`
-		Protocol    string `json:"protocol"`
-		Publicip    string `json:"publicip"`
-		Publicipid  string `json:"publicipid"`
-		Publicport  string `json:"publicport"`
-		State       string `json:"state"`
-		Tags        []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Zoneid string `json:"zoneid"`
-	} `json:"loadbalancerrule"`
-	Name      string `json:"name"`
-	Project   string `json:"project"`
-	Projectid string `json:"projectid"`
-	Regionid  int    `json:"regionid"`
+	Account                     string                                   `json:"account"`
+	Description                 string                                   `json:"description"`
+	Domain                      string                                   `json:"domain"`
+	Domainid                    string                                   `json:"domainid"`
+	Gslbdomainname              string                                   `json:"gslbdomainname"`
+	Gslblbmethod                string                                   `json:"gslblbmethod"`
+	Gslbservicetype             string                                   `json:"gslbservicetype"`
+	Gslbstickysessionmethodname string                                   `json:"gslbstickysessionmethodname"`
+	Id                          string                                   `json:"id"`
+	Loadbalancerrule            []GlobalLoadBalancerRuleLoadbalancerrule `json:"loadbalancerrule"`
+	Name                        string                                   `json:"name"`
+	Project                     string                                   `json:"project"`
+	Projectid                   string                                   `json:"projectid"`
+	Regionid                    int                                      `json:"regionid"`
+}
+
+type GlobalLoadBalancerRuleLoadbalancerrule struct {
+	Account     string `json:"account"`
+	Algorithm   string `json:"algorithm"`
+	Cidrlist    string `json:"cidrlist"`
+	Description string `json:"description"`
+	Domain      string `json:"domain"`
+	Domainid    string `json:"domainid"`
+	Fordisplay  bool   `json:"fordisplay"`
+	Id          string `json:"id"`
+	Name        string `json:"name"`
+	Networkid   string `json:"networkid"`
+	Privateport string `json:"privateport"`
+	Project     string `json:"project"`
+	Projectid   string `json:"projectid"`
+	Protocol    string `json:"protocol"`
+	Publicip    string `json:"publicip"`
+	Publicipid  string `json:"publicipid"`
+	Publicport  string `json:"publicport"`
+	State       string `json:"state"`
+	Tags        []Tags `json:"tags"`
+	Zoneid      string `json:"zoneid"`
+	Zonename    string `json:"zonename"`
 }
 
 type ListLBHealthCheckPoliciesParams struct {
@@ -2914,22 +2504,24 @@
 }
 
 type LBHealthCheckPolicy struct {
-	Account           string `json:"account"`
-	Domain            string `json:"domain"`
-	Domainid          string `json:"domainid"`
-	Healthcheckpolicy []struct {
-		Description             string `json:"description"`
-		Fordisplay              bool   `json:"fordisplay"`
-		Healthcheckinterval     int    `json:"healthcheckinterval"`
-		Healthcheckthresshold   int    `json:"healthcheckthresshold"`
-		Id                      string `json:"id"`
-		Pingpath                string `json:"pingpath"`
-		Responsetime            int    `json:"responsetime"`
-		State                   string `json:"state"`
-		Unhealthcheckthresshold int    `json:"unhealthcheckthresshold"`
-	} `json:"healthcheckpolicy"`
-	Lbruleid string `json:"lbruleid"`
-	Zoneid   string `json:"zoneid"`
+	Account           string                                 `json:"account"`
+	Domain            string                                 `json:"domain"`
+	Domainid          string                                 `json:"domainid"`
+	Healthcheckpolicy []LBHealthCheckPolicyHealthcheckpolicy `json:"healthcheckpolicy"`
+	Lbruleid          string                                 `json:"lbruleid"`
+	Zoneid            string                                 `json:"zoneid"`
+}
+
+type LBHealthCheckPolicyHealthcheckpolicy struct {
+	Description             string `json:"description"`
+	Fordisplay              bool   `json:"fordisplay"`
+	Healthcheckinterval     int    `json:"healthcheckinterval"`
+	Healthcheckthresshold   int    `json:"healthcheckthresshold"`
+	Id                      string `json:"id"`
+	Pingpath                string `json:"pingpath"`
+	Responsetime            int    `json:"responsetime"`
+	State                   string `json:"state"`
+	Unhealthcheckthresshold int    `json:"unhealthcheckthresshold"`
 }
 
 type ListLBStickinessPoliciesParams struct {
@@ -3075,23 +2667,25 @@
 }
 
 type LBStickinessPolicy struct {
-	Account          string `json:"account"`
-	Description      string `json:"description"`
-	Domain           string `json:"domain"`
-	Domainid         string `json:"domainid"`
-	Lbruleid         string `json:"lbruleid"`
-	Name             string `json:"name"`
-	State            string `json:"state"`
-	Stickinesspolicy []struct {
-		Description string            `json:"description"`
-		Fordisplay  bool              `json:"fordisplay"`
-		Id          string            `json:"id"`
-		Methodname  string            `json:"methodname"`
-		Name        string            `json:"name"`
-		Params      map[string]string `json:"params"`
-		State       string            `json:"state"`
-	} `json:"stickinesspolicy"`
-	Zoneid string `json:"zoneid"`
+	Account          string                               `json:"account"`
+	Description      string                               `json:"description"`
+	Domain           string                               `json:"domain"`
+	Domainid         string                               `json:"domainid"`
+	Lbruleid         string                               `json:"lbruleid"`
+	Name             string                               `json:"name"`
+	State            string                               `json:"state"`
+	Stickinesspolicy []LBStickinessPolicyStickinesspolicy `json:"stickinesspolicy"`
+	Zoneid           string                               `json:"zoneid"`
+}
+
+type LBStickinessPolicyStickinesspolicy struct {
+	Description string            `json:"description"`
+	Fordisplay  bool              `json:"fordisplay"`
+	Id          string            `json:"id"`
+	Methodname  string            `json:"methodname"`
+	Name        string            `json:"name"`
+	Params      map[string]string `json:"params"`
+	State       string            `json:"state"`
 }
 
 type ListLoadBalancerRuleInstancesParams struct {
@@ -3572,19 +3166,9 @@
 	Publicipid  string `json:"publicipid"`
 	Publicport  string `json:"publicport"`
 	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Zoneid string `json:"zoneid"`
+	Tags        []Tags `json:"tags"`
+	Zoneid      string `json:"zoneid"`
+	Zonename    string `json:"zonename"`
 }
 
 type ListLoadBalancersParams struct {
@@ -3897,42 +3481,35 @@
 }
 
 type LoadBalancer struct {
-	Account              string `json:"account"`
-	Algorithm            string `json:"algorithm"`
-	Description          string `json:"description"`
-	Domain               string `json:"domain"`
-	Domainid             string `json:"domainid"`
-	Fordisplay           bool   `json:"fordisplay"`
-	Id                   string `json:"id"`
-	Loadbalancerinstance []struct {
-		Id        string `json:"id"`
-		Ipaddress string `json:"ipaddress"`
-		Name      string `json:"name"`
-		State     string `json:"state"`
-	} `json:"loadbalancerinstance"`
-	Loadbalancerrule []struct {
-		Instanceport int    `json:"instanceport"`
-		Sourceport   int    `json:"sourceport"`
-		State        string `json:"state"`
-	} `json:"loadbalancerrule"`
-	Name                     string `json:"name"`
-	Networkid                string `json:"networkid"`
-	Project                  string `json:"project"`
-	Projectid                string `json:"projectid"`
-	Sourceipaddress          string `json:"sourceipaddress"`
-	Sourceipaddressnetworkid string `json:"sourceipaddressnetworkid"`
-	Tags                     []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Account                  string                             `json:"account"`
+	Algorithm                string                             `json:"algorithm"`
+	Description              string                             `json:"description"`
+	Domain                   string                             `json:"domain"`
+	Domainid                 string                             `json:"domainid"`
+	Fordisplay               bool                               `json:"fordisplay"`
+	Id                       string                             `json:"id"`
+	Loadbalancerinstance     []LoadBalancerLoadbalancerinstance `json:"loadbalancerinstance"`
+	Loadbalancerrule         []LoadBalancerLoadbalancerrule     `json:"loadbalancerrule"`
+	Name                     string                             `json:"name"`
+	Networkid                string                             `json:"networkid"`
+	Project                  string                             `json:"project"`
+	Projectid                string                             `json:"projectid"`
+	Sourceipaddress          string                             `json:"sourceipaddress"`
+	Sourceipaddressnetworkid string                             `json:"sourceipaddressnetworkid"`
+	Tags                     []Tags                             `json:"tags"`
+}
+
+type LoadBalancerLoadbalancerrule struct {
+	Instanceport int    `json:"instanceport"`
+	Sourceport   int    `json:"sourceport"`
+	State        string `json:"state"`
+}
+
+type LoadBalancerLoadbalancerinstance struct {
+	Id        string `json:"id"`
+	Ipaddress string `json:"ipaddress"`
+	Name      string `json:"name"`
+	State     string `json:"state"`
 }
 
 type ListNetscalerLoadBalancersParams struct {
@@ -4143,6 +3720,7 @@
 	Fingerprint          string   `json:"fingerprint"`
 	Id                   string   `json:"id"`
 	Loadbalancerrulelist []string `json:"loadbalancerrulelist"`
+	Name                 string   `json:"name"`
 	Project              string   `json:"project"`
 	Projectid            string   `json:"projectid"`
 }
@@ -4493,53 +4071,45 @@
 }
 
 type UpdateGlobalLoadBalancerRuleResponse struct {
-	JobID                       string `json:"jobid"`
-	Account                     string `json:"account"`
-	Description                 string `json:"description"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gslbdomainname              string `json:"gslbdomainname"`
-	Gslblbmethod                string `json:"gslblbmethod"`
-	Gslbservicetype             string `json:"gslbservicetype"`
-	Gslbstickysessionmethodname string `json:"gslbstickysessionmethodname"`
-	Id                          string `json:"id"`
-	Loadbalancerrule            []struct {
-		Account     string `json:"account"`
-		Algorithm   string `json:"algorithm"`
-		Cidrlist    string `json:"cidrlist"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Fordisplay  bool   `json:"fordisplay"`
-		Id          string `json:"id"`
-		Name        string `json:"name"`
-		Networkid   string `json:"networkid"`
-		Privateport string `json:"privateport"`
-		Project     string `json:"project"`
-		Projectid   string `json:"projectid"`
-		Protocol    string `json:"protocol"`
-		Publicip    string `json:"publicip"`
-		Publicipid  string `json:"publicipid"`
-		Publicport  string `json:"publicport"`
-		State       string `json:"state"`
-		Tags        []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Zoneid string `json:"zoneid"`
-	} `json:"loadbalancerrule"`
-	Name      string `json:"name"`
-	Project   string `json:"project"`
-	Projectid string `json:"projectid"`
-	Regionid  int    `json:"regionid"`
+	JobID                       string                                                 `json:"jobid"`
+	Account                     string                                                 `json:"account"`
+	Description                 string                                                 `json:"description"`
+	Domain                      string                                                 `json:"domain"`
+	Domainid                    string                                                 `json:"domainid"`
+	Gslbdomainname              string                                                 `json:"gslbdomainname"`
+	Gslblbmethod                string                                                 `json:"gslblbmethod"`
+	Gslbservicetype             string                                                 `json:"gslbservicetype"`
+	Gslbstickysessionmethodname string                                                 `json:"gslbstickysessionmethodname"`
+	Id                          string                                                 `json:"id"`
+	Loadbalancerrule            []UpdateGlobalLoadBalancerRuleResponseLoadbalancerrule `json:"loadbalancerrule"`
+	Name                        string                                                 `json:"name"`
+	Project                     string                                                 `json:"project"`
+	Projectid                   string                                                 `json:"projectid"`
+	Regionid                    int                                                    `json:"regionid"`
+}
+
+type UpdateGlobalLoadBalancerRuleResponseLoadbalancerrule struct {
+	Account     string `json:"account"`
+	Algorithm   string `json:"algorithm"`
+	Cidrlist    string `json:"cidrlist"`
+	Description string `json:"description"`
+	Domain      string `json:"domain"`
+	Domainid    string `json:"domainid"`
+	Fordisplay  bool   `json:"fordisplay"`
+	Id          string `json:"id"`
+	Name        string `json:"name"`
+	Networkid   string `json:"networkid"`
+	Privateport string `json:"privateport"`
+	Project     string `json:"project"`
+	Projectid   string `json:"projectid"`
+	Protocol    string `json:"protocol"`
+	Publicip    string `json:"publicip"`
+	Publicipid  string `json:"publicipid"`
+	Publicport  string `json:"publicport"`
+	State       string `json:"state"`
+	Tags        []Tags `json:"tags"`
+	Zoneid      string `json:"zoneid"`
+	Zonename    string `json:"zonename"`
 }
 
 type UpdateLBHealthCheckPolicyParams struct {
@@ -4633,23 +4203,25 @@
 }
 
 type UpdateLBHealthCheckPolicyResponse struct {
-	JobID             string `json:"jobid"`
-	Account           string `json:"account"`
-	Domain            string `json:"domain"`
-	Domainid          string `json:"domainid"`
-	Healthcheckpolicy []struct {
-		Description             string `json:"description"`
-		Fordisplay              bool   `json:"fordisplay"`
-		Healthcheckinterval     int    `json:"healthcheckinterval"`
-		Healthcheckthresshold   int    `json:"healthcheckthresshold"`
-		Id                      string `json:"id"`
-		Pingpath                string `json:"pingpath"`
-		Responsetime            int    `json:"responsetime"`
-		State                   string `json:"state"`
-		Unhealthcheckthresshold int    `json:"unhealthcheckthresshold"`
-	} `json:"healthcheckpolicy"`
-	Lbruleid string `json:"lbruleid"`
-	Zoneid   string `json:"zoneid"`
+	JobID             string                                               `json:"jobid"`
+	Account           string                                               `json:"account"`
+	Domain            string                                               `json:"domain"`
+	Domainid          string                                               `json:"domainid"`
+	Healthcheckpolicy []UpdateLBHealthCheckPolicyResponseHealthcheckpolicy `json:"healthcheckpolicy"`
+	Lbruleid          string                                               `json:"lbruleid"`
+	Zoneid            string                                               `json:"zoneid"`
+}
+
+type UpdateLBHealthCheckPolicyResponseHealthcheckpolicy struct {
+	Description             string `json:"description"`
+	Fordisplay              bool   `json:"fordisplay"`
+	Healthcheckinterval     int    `json:"healthcheckinterval"`
+	Healthcheckthresshold   int    `json:"healthcheckthresshold"`
+	Id                      string `json:"id"`
+	Pingpath                string `json:"pingpath"`
+	Responsetime            int    `json:"responsetime"`
+	State                   string `json:"state"`
+	Unhealthcheckthresshold int    `json:"unhealthcheckthresshold"`
 }
 
 type UpdateLBStickinessPolicyParams struct {
@@ -4743,24 +4315,26 @@
 }
 
 type UpdateLBStickinessPolicyResponse struct {
-	JobID            string `json:"jobid"`
-	Account          string `json:"account"`
-	Description      string `json:"description"`
-	Domain           string `json:"domain"`
-	Domainid         string `json:"domainid"`
-	Lbruleid         string `json:"lbruleid"`
-	Name             string `json:"name"`
-	State            string `json:"state"`
-	Stickinesspolicy []struct {
-		Description string            `json:"description"`
-		Fordisplay  bool              `json:"fordisplay"`
-		Id          string            `json:"id"`
-		Methodname  string            `json:"methodname"`
-		Name        string            `json:"name"`
-		Params      map[string]string `json:"params"`
-		State       string            `json:"state"`
-	} `json:"stickinesspolicy"`
-	Zoneid string `json:"zoneid"`
+	JobID            string                                             `json:"jobid"`
+	Account          string                                             `json:"account"`
+	Description      string                                             `json:"description"`
+	Domain           string                                             `json:"domain"`
+	Domainid         string                                             `json:"domainid"`
+	Lbruleid         string                                             `json:"lbruleid"`
+	Name             string                                             `json:"name"`
+	State            string                                             `json:"state"`
+	Stickinesspolicy []UpdateLBStickinessPolicyResponseStickinesspolicy `json:"stickinesspolicy"`
+	Zoneid           string                                             `json:"zoneid"`
+}
+
+type UpdateLBStickinessPolicyResponseStickinesspolicy struct {
+	Description string            `json:"description"`
+	Fordisplay  bool              `json:"fordisplay"`
+	Id          string            `json:"id"`
+	Methodname  string            `json:"methodname"`
+	Name        string            `json:"name"`
+	Params      map[string]string `json:"params"`
+	State       string            `json:"state"`
 }
 
 type UpdateLoadBalancerParams struct {
@@ -4854,43 +4428,36 @@
 }
 
 type UpdateLoadBalancerResponse struct {
-	JobID                string `json:"jobid"`
-	Account              string `json:"account"`
-	Algorithm            string `json:"algorithm"`
-	Description          string `json:"description"`
-	Domain               string `json:"domain"`
-	Domainid             string `json:"domainid"`
-	Fordisplay           bool   `json:"fordisplay"`
-	Id                   string `json:"id"`
-	Loadbalancerinstance []struct {
-		Id        string `json:"id"`
-		Ipaddress string `json:"ipaddress"`
-		Name      string `json:"name"`
-		State     string `json:"state"`
-	} `json:"loadbalancerinstance"`
-	Loadbalancerrule []struct {
-		Instanceport int    `json:"instanceport"`
-		Sourceport   int    `json:"sourceport"`
-		State        string `json:"state"`
-	} `json:"loadbalancerrule"`
-	Name                     string `json:"name"`
-	Networkid                string `json:"networkid"`
-	Project                  string `json:"project"`
-	Projectid                string `json:"projectid"`
-	Sourceipaddress          string `json:"sourceipaddress"`
-	Sourceipaddressnetworkid string `json:"sourceipaddressnetworkid"`
-	Tags                     []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                    string                                           `json:"jobid"`
+	Account                  string                                           `json:"account"`
+	Algorithm                string                                           `json:"algorithm"`
+	Description              string                                           `json:"description"`
+	Domain                   string                                           `json:"domain"`
+	Domainid                 string                                           `json:"domainid"`
+	Fordisplay               bool                                             `json:"fordisplay"`
+	Id                       string                                           `json:"id"`
+	Loadbalancerinstance     []UpdateLoadBalancerResponseLoadbalancerinstance `json:"loadbalancerinstance"`
+	Loadbalancerrule         []UpdateLoadBalancerResponseLoadbalancerrule     `json:"loadbalancerrule"`
+	Name                     string                                           `json:"name"`
+	Networkid                string                                           `json:"networkid"`
+	Project                  string                                           `json:"project"`
+	Projectid                string                                           `json:"projectid"`
+	Sourceipaddress          string                                           `json:"sourceipaddress"`
+	Sourceipaddressnetworkid string                                           `json:"sourceipaddressnetworkid"`
+	Tags                     []Tags                                           `json:"tags"`
+}
+
+type UpdateLoadBalancerResponseLoadbalancerrule struct {
+	Instanceport int    `json:"instanceport"`
+	Sourceport   int    `json:"sourceport"`
+	State        string `json:"state"`
+}
+
+type UpdateLoadBalancerResponseLoadbalancerinstance struct {
+	Id        string `json:"id"`
+	Ipaddress string `json:"ipaddress"`
+	Name      string `json:"name"`
+	State     string `json:"state"`
 }
 
 type UpdateLoadBalancerRuleParams struct {
@@ -4921,6 +4488,9 @@
 	if v, found := p.p["name"]; found {
 		u.Set("name", v.(string))
 	}
+	if v, found := p.p["protocol"]; found {
+		u.Set("protocol", v.(string))
+	}
 	return u
 }
 
@@ -4972,6 +4542,14 @@
 	return
 }
 
+func (p *UpdateLoadBalancerRuleParams) SetProtocol(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["protocol"] = v
+	return
+}
+
 // You should always use this function to get a new UpdateLoadBalancerRuleParams instance,
 // as then you are sure you have configured all required params
 func (s *LoadBalancerService) NewUpdateLoadBalancerRuleParams(id string) *UpdateLoadBalancerRuleParams {
@@ -5036,19 +4614,9 @@
 	Publicipid  string `json:"publicipid"`
 	Publicport  string `json:"publicport"`
 	State       string `json:"state"`
-	Tags        []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Zoneid string `json:"zoneid"`
+	Tags        []Tags `json:"tags"`
+	Zoneid      string `json:"zoneid"`
+	Zonename    string `json:"zonename"`
 }
 
 type UploadSslCertParams struct {
@@ -5072,6 +4640,9 @@
 	if v, found := p.p["domainid"]; found {
 		u.Set("domainid", v.(string))
 	}
+	if v, found := p.p["name"]; found {
+		u.Set("name", v.(string))
+	}
 	if v, found := p.p["password"]; found {
 		u.Set("password", v.(string))
 	}
@@ -5116,6 +4687,14 @@
 	return
 }
 
+func (p *UploadSslCertParams) SetName(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["name"] = v
+	return
+}
+
 func (p *UploadSslCertParams) SetPassword(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -5142,10 +4721,11 @@
 
 // You should always use this function to get a new UploadSslCertParams instance,
 // as then you are sure you have configured all required params
-func (s *LoadBalancerService) NewUploadSslCertParams(certificate string, privatekey string) *UploadSslCertParams {
+func (s *LoadBalancerService) NewUploadSslCertParams(certificate string, name string, privatekey string) *UploadSslCertParams {
 	p := &UploadSslCertParams{}
 	p.p = make(map[string]interface{})
 	p.p["certificate"] = certificate
+	p.p["name"] = name
 	p.p["privatekey"] = privatekey
 	return p
 }
@@ -5174,6 +4754,7 @@
 	Fingerprint          string   `json:"fingerprint"`
 	Id                   string   `json:"id"`
 	Loadbalancerrulelist []string `json:"loadbalancerrulelist"`
+	Name                 string   `json:"name"`
 	Project              string   `json:"project"`
 	Projectid            string   `json:"projectid"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NATService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NATService.go
index adb213e..714dfa5 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NATService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NATService.go
@@ -153,31 +153,20 @@
 }
 
 type CreateIpForwardingRuleResponse struct {
-	JobID          string `json:"jobid"`
-	Cidrlist       string `json:"cidrlist"`
-	Fordisplay     bool   `json:"fordisplay"`
-	Id             string `json:"id"`
-	Ipaddress      string `json:"ipaddress"`
-	Ipaddressid    string `json:"ipaddressid"`
-	Networkid      string `json:"networkid"`
-	Privateendport string `json:"privateendport"`
-	Privateport    string `json:"privateport"`
-	Protocol       string `json:"protocol"`
-	Publicendport  string `json:"publicendport"`
-	Publicport     string `json:"publicport"`
-	State          string `json:"state"`
-	Tags           []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                     string `json:"jobid"`
+	Cidrlist                  string `json:"cidrlist"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Ipaddressid               string `json:"ipaddressid"`
+	Networkid                 string `json:"networkid"`
+	Privateendport            string `json:"privateendport"`
+	Privateport               string `json:"privateport"`
+	Protocol                  string `json:"protocol"`
+	Publicendport             string `json:"publicendport"`
+	Publicport                string `json:"publicport"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
@@ -403,7 +392,26 @@
 
 type EnableStaticNatResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *EnableStaticNatResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias EnableStaticNatResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListIpForwardingRulesParams struct {
@@ -605,30 +613,19 @@
 }
 
 type IpForwardingRule struct {
-	Cidrlist       string `json:"cidrlist"`
-	Fordisplay     bool   `json:"fordisplay"`
-	Id             string `json:"id"`
-	Ipaddress      string `json:"ipaddress"`
-	Ipaddressid    string `json:"ipaddressid"`
-	Networkid      string `json:"networkid"`
-	Privateendport string `json:"privateendport"`
-	Privateport    string `json:"privateport"`
-	Protocol       string `json:"protocol"`
-	Publicendport  string `json:"publicendport"`
-	Publicport     string `json:"publicport"`
-	State          string `json:"state"`
-	Tags           []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Cidrlist                  string `json:"cidrlist"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Ipaddressid               string `json:"ipaddressid"`
+	Networkid                 string `json:"networkid"`
+	Privateendport            string `json:"privateendport"`
+	Privateport               string `json:"privateport"`
+	Protocol                  string `json:"protocol"`
+	Publicendport             string `json:"publicendport"`
+	Publicport                string `json:"publicport"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkACLService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkACLService.go
index e050b80..6d0e154 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkACLService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkACLService.go
@@ -220,31 +220,20 @@
 }
 
 type CreateNetworkACLResponse struct {
-	JobID      string `json:"jobid"`
-	Aclid      string `json:"aclid"`
-	Action     string `json:"action"`
-	Cidrlist   string `json:"cidrlist"`
-	Endport    string `json:"endport"`
-	Fordisplay bool   `json:"fordisplay"`
-	Icmpcode   int    `json:"icmpcode"`
-	Icmptype   int    `json:"icmptype"`
-	Id         string `json:"id"`
-	Number     int    `json:"number"`
-	Protocol   string `json:"protocol"`
-	Startport  string `json:"startport"`
-	State      string `json:"state"`
-	Tags       []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID       string `json:"jobid"`
+	Aclid       string `json:"aclid"`
+	Action      string `json:"action"`
+	Cidrlist    string `json:"cidrlist"`
+	Endport     string `json:"endport"`
+	Fordisplay  bool   `json:"fordisplay"`
+	Icmpcode    int    `json:"icmpcode"`
+	Icmptype    int    `json:"icmptype"`
+	Id          string `json:"id"`
+	Number      int    `json:"number"`
+	Protocol    string `json:"protocol"`
+	Startport   string `json:"startport"`
+	State       string `json:"state"`
+	Tags        []Tags `json:"tags"`
 	Traffictype string `json:"traffictype"`
 }
 
@@ -1034,30 +1023,19 @@
 }
 
 type NetworkACL struct {
-	Aclid      string `json:"aclid"`
-	Action     string `json:"action"`
-	Cidrlist   string `json:"cidrlist"`
-	Endport    string `json:"endport"`
-	Fordisplay bool   `json:"fordisplay"`
-	Icmpcode   int    `json:"icmpcode"`
-	Icmptype   int    `json:"icmptype"`
-	Id         string `json:"id"`
-	Number     int    `json:"number"`
-	Protocol   string `json:"protocol"`
-	Startport  string `json:"startport"`
-	State      string `json:"state"`
-	Tags       []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Aclid       string `json:"aclid"`
+	Action      string `json:"action"`
+	Cidrlist    string `json:"cidrlist"`
+	Endport     string `json:"endport"`
+	Fordisplay  bool   `json:"fordisplay"`
+	Icmpcode    int    `json:"icmpcode"`
+	Icmptype    int    `json:"icmptype"`
+	Id          string `json:"id"`
+	Number      int    `json:"number"`
+	Protocol    string `json:"protocol"`
+	Startport   string `json:"startport"`
+	State       string `json:"state"`
+	Tags        []Tags `json:"tags"`
 	Traffictype string `json:"traffictype"`
 }
 
@@ -1347,31 +1325,20 @@
 }
 
 type UpdateNetworkACLItemResponse struct {
-	JobID      string `json:"jobid"`
-	Aclid      string `json:"aclid"`
-	Action     string `json:"action"`
-	Cidrlist   string `json:"cidrlist"`
-	Endport    string `json:"endport"`
-	Fordisplay bool   `json:"fordisplay"`
-	Icmpcode   int    `json:"icmpcode"`
-	Icmptype   int    `json:"icmptype"`
-	Id         string `json:"id"`
-	Number     int    `json:"number"`
-	Protocol   string `json:"protocol"`
-	Startport  string `json:"startport"`
-	State      string `json:"state"`
-	Tags       []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID       string `json:"jobid"`
+	Aclid       string `json:"aclid"`
+	Action      string `json:"action"`
+	Cidrlist    string `json:"cidrlist"`
+	Endport     string `json:"endport"`
+	Fordisplay  bool   `json:"fordisplay"`
+	Icmpcode    int    `json:"icmpcode"`
+	Icmptype    int    `json:"icmptype"`
+	Id          string `json:"id"`
+	Number      int    `json:"number"`
+	Protocol    string `json:"protocol"`
+	Startport   string `json:"startport"`
+	State       string `json:"state"`
+	Tags        []Tags `json:"tags"`
 	Traffictype string `json:"traffictype"`
 }
 
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkDeviceService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkDeviceService.go
index 6f44b98..cea5a8a 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkDeviceService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkDeviceService.go
@@ -138,7 +138,26 @@
 
 type DeleteNetworkDeviceResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteNetworkDeviceResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteNetworkDeviceResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListNetworkDeviceParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkOfferingService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkOfferingService.go
index 59b6663..51ed208 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkOfferingService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkOfferingService.go
@@ -54,6 +54,10 @@
 		vv := strconv.FormatBool(v.(bool))
 		u.Set("egressdefaultpolicy", vv)
 	}
+	if v, found := p.p["forvpc"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("forvpc", vv)
+	}
 	if v, found := p.p["guestiptype"]; found {
 		u.Set("guestiptype", v.(string))
 	}
@@ -156,6 +160,14 @@
 	return
 }
 
+func (p *CreateNetworkOfferingParams) SetForvpc(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["forvpc"] = v
+	return
+}
+
 func (p *CreateNetworkOfferingParams) SetGuestiptype(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -301,44 +313,51 @@
 }
 
 type CreateNetworkOfferingResponse struct {
-	Availability        string            `json:"availability"`
-	Conservemode        bool              `json:"conservemode"`
-	Created             string            `json:"created"`
-	Details             map[string]string `json:"details"`
-	Displaytext         string            `json:"displaytext"`
-	Egressdefaultpolicy bool              `json:"egressdefaultpolicy"`
-	Forvpc              bool              `json:"forvpc"`
-	Guestiptype         string            `json:"guestiptype"`
-	Id                  string            `json:"id"`
-	Isdefault           bool              `json:"isdefault"`
-	Ispersistent        bool              `json:"ispersistent"`
-	Maxconnections      int               `json:"maxconnections"`
-	Name                string            `json:"name"`
-	Networkrate         int               `json:"networkrate"`
-	Service             []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Serviceofferingid        string `json:"serviceofferingid"`
-	Specifyipranges          bool   `json:"specifyipranges"`
-	Specifyvlan              bool   `json:"specifyvlan"`
-	State                    string `json:"state"`
-	Supportsstrechedl2subnet bool   `json:"supportsstrechedl2subnet"`
-	Tags                     string `json:"tags"`
-	Traffictype              string `json:"traffictype"`
+	Availability             string                                 `json:"availability"`
+	Conservemode             bool                                   `json:"conservemode"`
+	Created                  string                                 `json:"created"`
+	Details                  map[string]string                      `json:"details"`
+	Displaytext              string                                 `json:"displaytext"`
+	Egressdefaultpolicy      bool                                   `json:"egressdefaultpolicy"`
+	Forvpc                   bool                                   `json:"forvpc"`
+	Guestiptype              string                                 `json:"guestiptype"`
+	Id                       string                                 `json:"id"`
+	Isdefault                bool                                   `json:"isdefault"`
+	Ispersistent             bool                                   `json:"ispersistent"`
+	Maxconnections           int                                    `json:"maxconnections"`
+	Name                     string                                 `json:"name"`
+	Networkrate              int                                    `json:"networkrate"`
+	Service                  []CreateNetworkOfferingResponseService `json:"service"`
+	Serviceofferingid        string                                 `json:"serviceofferingid"`
+	Specifyipranges          bool                                   `json:"specifyipranges"`
+	Specifyvlan              bool                                   `json:"specifyvlan"`
+	State                    string                                 `json:"state"`
+	Supportspublicaccess     bool                                   `json:"supportspublicaccess"`
+	Supportsstrechedl2subnet bool                                   `json:"supportsstrechedl2subnet"`
+	Tags                     string                                 `json:"tags"`
+	Traffictype              string                                 `json:"traffictype"`
+}
+
+type CreateNetworkOfferingResponseService struct {
+	Capability []CreateNetworkOfferingResponseServiceCapability `json:"capability"`
+	Name       string                                           `json:"name"`
+	Provider   []CreateNetworkOfferingResponseServiceProvider   `json:"provider"`
+}
+
+type CreateNetworkOfferingResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type CreateNetworkOfferingResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type DeleteNetworkOfferingParams struct {
@@ -390,7 +409,26 @@
 
 type DeleteNetworkOfferingResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteNetworkOfferingResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteNetworkOfferingResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListNetworkOfferingsParams struct {
@@ -746,44 +784,51 @@
 }
 
 type NetworkOffering struct {
-	Availability        string            `json:"availability"`
-	Conservemode        bool              `json:"conservemode"`
-	Created             string            `json:"created"`
-	Details             map[string]string `json:"details"`
-	Displaytext         string            `json:"displaytext"`
-	Egressdefaultpolicy bool              `json:"egressdefaultpolicy"`
-	Forvpc              bool              `json:"forvpc"`
-	Guestiptype         string            `json:"guestiptype"`
-	Id                  string            `json:"id"`
-	Isdefault           bool              `json:"isdefault"`
-	Ispersistent        bool              `json:"ispersistent"`
-	Maxconnections      int               `json:"maxconnections"`
-	Name                string            `json:"name"`
-	Networkrate         int               `json:"networkrate"`
-	Service             []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Serviceofferingid        string `json:"serviceofferingid"`
-	Specifyipranges          bool   `json:"specifyipranges"`
-	Specifyvlan              bool   `json:"specifyvlan"`
-	State                    string `json:"state"`
-	Supportsstrechedl2subnet bool   `json:"supportsstrechedl2subnet"`
-	Tags                     string `json:"tags"`
-	Traffictype              string `json:"traffictype"`
+	Availability             string                           `json:"availability"`
+	Conservemode             bool                             `json:"conservemode"`
+	Created                  string                           `json:"created"`
+	Details                  map[string]string                `json:"details"`
+	Displaytext              string                           `json:"displaytext"`
+	Egressdefaultpolicy      bool                             `json:"egressdefaultpolicy"`
+	Forvpc                   bool                             `json:"forvpc"`
+	Guestiptype              string                           `json:"guestiptype"`
+	Id                       string                           `json:"id"`
+	Isdefault                bool                             `json:"isdefault"`
+	Ispersistent             bool                             `json:"ispersistent"`
+	Maxconnections           int                              `json:"maxconnections"`
+	Name                     string                           `json:"name"`
+	Networkrate              int                              `json:"networkrate"`
+	Service                  []NetworkOfferingServiceInternal `json:"service"`
+	Serviceofferingid        string                           `json:"serviceofferingid"`
+	Specifyipranges          bool                             `json:"specifyipranges"`
+	Specifyvlan              bool                             `json:"specifyvlan"`
+	State                    string                           `json:"state"`
+	Supportspublicaccess     bool                             `json:"supportspublicaccess"`
+	Supportsstrechedl2subnet bool                             `json:"supportsstrechedl2subnet"`
+	Tags                     string                           `json:"tags"`
+	Traffictype              string                           `json:"traffictype"`
+}
+
+type NetworkOfferingServiceInternal struct {
+	Capability []NetworkOfferingServiceInternalCapability `json:"capability"`
+	Name       string                                     `json:"name"`
+	Provider   []NetworkOfferingServiceInternalProvider   `json:"provider"`
+}
+
+type NetworkOfferingServiceInternalProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type NetworkOfferingServiceInternalCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type UpdateNetworkOfferingParams struct {
@@ -822,6 +867,9 @@
 	if v, found := p.p["state"]; found {
 		u.Set("state", v.(string))
 	}
+	if v, found := p.p["tags"]; found {
+		u.Set("tags", v.(string))
+	}
 	return u
 }
 
@@ -889,6 +937,14 @@
 	return
 }
 
+func (p *UpdateNetworkOfferingParams) SetTags(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["tags"] = v
+	return
+}
+
 // You should always use this function to get a new UpdateNetworkOfferingParams instance,
 // as then you are sure you have configured all required params
 func (s *NetworkOfferingService) NewUpdateNetworkOfferingParams() *UpdateNetworkOfferingParams {
@@ -913,42 +969,49 @@
 }
 
 type UpdateNetworkOfferingResponse struct {
-	Availability        string            `json:"availability"`
-	Conservemode        bool              `json:"conservemode"`
-	Created             string            `json:"created"`
-	Details             map[string]string `json:"details"`
-	Displaytext         string            `json:"displaytext"`
-	Egressdefaultpolicy bool              `json:"egressdefaultpolicy"`
-	Forvpc              bool              `json:"forvpc"`
-	Guestiptype         string            `json:"guestiptype"`
-	Id                  string            `json:"id"`
-	Isdefault           bool              `json:"isdefault"`
-	Ispersistent        bool              `json:"ispersistent"`
-	Maxconnections      int               `json:"maxconnections"`
-	Name                string            `json:"name"`
-	Networkrate         int               `json:"networkrate"`
-	Service             []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Serviceofferingid        string `json:"serviceofferingid"`
-	Specifyipranges          bool   `json:"specifyipranges"`
-	Specifyvlan              bool   `json:"specifyvlan"`
-	State                    string `json:"state"`
-	Supportsstrechedl2subnet bool   `json:"supportsstrechedl2subnet"`
-	Tags                     string `json:"tags"`
-	Traffictype              string `json:"traffictype"`
+	Availability             string                                 `json:"availability"`
+	Conservemode             bool                                   `json:"conservemode"`
+	Created                  string                                 `json:"created"`
+	Details                  map[string]string                      `json:"details"`
+	Displaytext              string                                 `json:"displaytext"`
+	Egressdefaultpolicy      bool                                   `json:"egressdefaultpolicy"`
+	Forvpc                   bool                                   `json:"forvpc"`
+	Guestiptype              string                                 `json:"guestiptype"`
+	Id                       string                                 `json:"id"`
+	Isdefault                bool                                   `json:"isdefault"`
+	Ispersistent             bool                                   `json:"ispersistent"`
+	Maxconnections           int                                    `json:"maxconnections"`
+	Name                     string                                 `json:"name"`
+	Networkrate              int                                    `json:"networkrate"`
+	Service                  []UpdateNetworkOfferingResponseService `json:"service"`
+	Serviceofferingid        string                                 `json:"serviceofferingid"`
+	Specifyipranges          bool                                   `json:"specifyipranges"`
+	Specifyvlan              bool                                   `json:"specifyvlan"`
+	State                    string                                 `json:"state"`
+	Supportspublicaccess     bool                                   `json:"supportspublicaccess"`
+	Supportsstrechedl2subnet bool                                   `json:"supportsstrechedl2subnet"`
+	Tags                     string                                 `json:"tags"`
+	Traffictype              string                                 `json:"traffictype"`
+}
+
+type UpdateNetworkOfferingResponseService struct {
+	Capability []UpdateNetworkOfferingResponseServiceCapability `json:"capability"`
+	Name       string                                           `json:"name"`
+	Provider   []UpdateNetworkOfferingResponseServiceProvider   `json:"provider"`
+}
+
+type UpdateNetworkOfferingResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type UpdateNetworkOfferingResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkService.go
index 6129da1..aef044e 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NetworkService.go
@@ -267,6 +267,10 @@
 	if v, found := p.p["acltype"]; found {
 		u.Set("acltype", v.(string))
 	}
+	if v, found := p.p["bypassvlanoverlapcheck"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("bypassvlanoverlapcheck", vv)
+	}
 	if v, found := p.p["displaynetwork"]; found {
 		vv := strconv.FormatBool(v.(bool))
 		u.Set("displaynetwork", vv)
@@ -283,6 +287,9 @@
 	if v, found := p.p["endipv6"]; found {
 		u.Set("endipv6", v.(string))
 	}
+	if v, found := p.p["externalid"]; found {
+		u.Set("externalid", v.(string))
+	}
 	if v, found := p.p["gateway"]; found {
 		u.Set("gateway", v.(string))
 	}
@@ -359,6 +366,14 @@
 	return
 }
 
+func (p *CreateNetworkParams) SetBypassvlanoverlapcheck(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["bypassvlanoverlapcheck"] = v
+	return
+}
+
 func (p *CreateNetworkParams) SetDisplaynetwork(v bool) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -399,6 +414,14 @@
 	return
 }
 
+func (p *CreateNetworkParams) SetExternalid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["externalid"] = v
+	return
+}
+
 func (p *CreateNetworkParams) SetGateway(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -559,81 +582,78 @@
 }
 
 type CreateNetworkResponse struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
+	Account                     string                         `json:"account"`
+	Aclid                       string                         `json:"aclid"`
+	Acltype                     string                         `json:"acltype"`
+	Broadcastdomaintype         string                         `json:"broadcastdomaintype"`
+	Broadcasturi                string                         `json:"broadcasturi"`
+	Canusefordeploy             bool                           `json:"canusefordeploy"`
+	Cidr                        string                         `json:"cidr"`
+	Displaynetwork              bool                           `json:"displaynetwork"`
+	Displaytext                 string                         `json:"displaytext"`
+	Dns1                        string                         `json:"dns1"`
+	Dns2                        string                         `json:"dns2"`
+	Domain                      string                         `json:"domain"`
+	Domainid                    string                         `json:"domainid"`
+	Externalid                  string                         `json:"externalid"`
+	Gateway                     string                         `json:"gateway"`
+	Id                          string                         `json:"id"`
+	Ip6cidr                     string                         `json:"ip6cidr"`
+	Ip6gateway                  string                         `json:"ip6gateway"`
+	Isdefault                   bool                           `json:"isdefault"`
+	Ispersistent                bool                           `json:"ispersistent"`
+	Issystem                    bool                           `json:"issystem"`
+	Name                        string                         `json:"name"`
+	Netmask                     string                         `json:"netmask"`
+	Networkcidr                 string                         `json:"networkcidr"`
+	Networkdomain               string                         `json:"networkdomain"`
+	Networkofferingavailability string                         `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                           `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                         `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                         `json:"networkofferingid"`
+	Networkofferingname         string                         `json:"networkofferingname"`
+	Physicalnetworkid           string                         `json:"physicalnetworkid"`
+	Project                     string                         `json:"project"`
+	Projectid                   string                         `json:"projectid"`
+	Redundantrouter             bool                           `json:"redundantrouter"`
+	Related                     string                         `json:"related"`
+	Reservediprange             string                         `json:"reservediprange"`
+	Restartrequired             bool                           `json:"restartrequired"`
+	Service                     []CreateNetworkResponseService `json:"service"`
+	Specifyipranges             bool                           `json:"specifyipranges"`
+	State                       string                         `json:"state"`
+	Strechedl2subnet            bool                           `json:"strechedl2subnet"`
+	Subdomainaccess             bool                           `json:"subdomainaccess"`
+	Tags                        []Tags                         `json:"tags"`
+	Traffictype                 string                         `json:"traffictype"`
+	Type                        string                         `json:"type"`
+	Vlan                        string                         `json:"vlan"`
+	Vpcid                       string                         `json:"vpcid"`
+	Zoneid                      string                         `json:"zoneid"`
+	Zonename                    string                         `json:"zonename"`
+	Zonesnetworkspans           []interface{}                  `json:"zonesnetworkspans"`
+}
+
+type CreateNetworkResponseService struct {
+	Capability []CreateNetworkResponseServiceCapability `json:"capability"`
+	Name       string                                   `json:"name"`
+	Provider   []CreateNetworkResponseServiceProvider   `json:"provider"`
+}
+
+type CreateNetworkResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type CreateNetworkResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type CreatePhysicalNetworkParams struct {
@@ -1196,6 +1216,7 @@
 	Domainid          string `json:"domainid"`
 	Endip             string `json:"endip"`
 	Endipv6           string `json:"endipv6"`
+	Forsystemvms      bool   `json:"forsystemvms"`
 	Forvirtualnetwork bool   `json:"forvirtualnetwork"`
 	Gateway           string `json:"gateway"`
 	Id                string `json:"id"`
@@ -1574,208 +1595,6 @@
 	Success     bool   `json:"success"`
 }
 
-type ListF5LoadBalancerNetworksParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListF5LoadBalancerNetworksParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["lbdeviceid"]; found {
-		u.Set("lbdeviceid", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	return u
-}
-
-func (p *ListF5LoadBalancerNetworksParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListF5LoadBalancerNetworksParams) SetLbdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["lbdeviceid"] = v
-	return
-}
-
-func (p *ListF5LoadBalancerNetworksParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListF5LoadBalancerNetworksParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-// You should always use this function to get a new ListF5LoadBalancerNetworksParams instance,
-// as then you are sure you have configured all required params
-func (s *NetworkService) NewListF5LoadBalancerNetworksParams(lbdeviceid string) *ListF5LoadBalancerNetworksParams {
-	p := &ListF5LoadBalancerNetworksParams{}
-	p.p = make(map[string]interface{})
-	p.p["lbdeviceid"] = lbdeviceid
-	return p
-}
-
-// This is a courtesy helper function, which in some cases may not work as expected!
-func (s *NetworkService) GetF5LoadBalancerNetworkID(keyword string, lbdeviceid string, opts ...OptionFunc) (string, int, error) {
-	p := &ListF5LoadBalancerNetworksParams{}
-	p.p = make(map[string]interface{})
-
-	p.p["keyword"] = keyword
-	p.p["lbdeviceid"] = lbdeviceid
-
-	for _, fn := range append(s.cs.options, opts...) {
-		if err := fn(s.cs, p); err != nil {
-			return "", -1, err
-		}
-	}
-
-	l, err := s.ListF5LoadBalancerNetworks(p)
-	if err != nil {
-		return "", -1, err
-	}
-
-	if l.Count == 0 {
-		return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l)
-	}
-
-	if l.Count == 1 {
-		return l.F5LoadBalancerNetworks[0].Id, l.Count, nil
-	}
-
-	if l.Count > 1 {
-		for _, v := range l.F5LoadBalancerNetworks {
-			if v.Name == keyword {
-				return v.Id, l.Count, nil
-			}
-		}
-	}
-	return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l)
-}
-
-// lists network that are using a F5 load balancer device
-func (s *NetworkService) ListF5LoadBalancerNetworks(p *ListF5LoadBalancerNetworksParams) (*ListF5LoadBalancerNetworksResponse, error) {
-	resp, err := s.cs.newRequest("listF5LoadBalancerNetworks", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListF5LoadBalancerNetworksResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListF5LoadBalancerNetworksResponse struct {
-	Count                  int                      `json:"count"`
-	F5LoadBalancerNetworks []*F5LoadBalancerNetwork `json:"f5loadbalancernetwork"`
-}
-
-type F5LoadBalancerNetwork struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-}
-
 type ListNetscalerLoadBalancerNetworksParams struct {
 	p map[string]interface{}
 }
@@ -1901,81 +1720,78 @@
 }
 
 type NetscalerLoadBalancerNetwork struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
+	Account                     string                                `json:"account"`
+	Aclid                       string                                `json:"aclid"`
+	Acltype                     string                                `json:"acltype"`
+	Broadcastdomaintype         string                                `json:"broadcastdomaintype"`
+	Broadcasturi                string                                `json:"broadcasturi"`
+	Canusefordeploy             bool                                  `json:"canusefordeploy"`
+	Cidr                        string                                `json:"cidr"`
+	Displaynetwork              bool                                  `json:"displaynetwork"`
+	Displaytext                 string                                `json:"displaytext"`
+	Dns1                        string                                `json:"dns1"`
+	Dns2                        string                                `json:"dns2"`
+	Domain                      string                                `json:"domain"`
+	Domainid                    string                                `json:"domainid"`
+	Externalid                  string                                `json:"externalid"`
+	Gateway                     string                                `json:"gateway"`
+	Id                          string                                `json:"id"`
+	Ip6cidr                     string                                `json:"ip6cidr"`
+	Ip6gateway                  string                                `json:"ip6gateway"`
+	Isdefault                   bool                                  `json:"isdefault"`
+	Ispersistent                bool                                  `json:"ispersistent"`
+	Issystem                    bool                                  `json:"issystem"`
+	Name                        string                                `json:"name"`
+	Netmask                     string                                `json:"netmask"`
+	Networkcidr                 string                                `json:"networkcidr"`
+	Networkdomain               string                                `json:"networkdomain"`
+	Networkofferingavailability string                                `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                                  `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                                `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                                `json:"networkofferingid"`
+	Networkofferingname         string                                `json:"networkofferingname"`
+	Physicalnetworkid           string                                `json:"physicalnetworkid"`
+	Project                     string                                `json:"project"`
+	Projectid                   string                                `json:"projectid"`
+	Redundantrouter             bool                                  `json:"redundantrouter"`
+	Related                     string                                `json:"related"`
+	Reservediprange             string                                `json:"reservediprange"`
+	Restartrequired             bool                                  `json:"restartrequired"`
+	Service                     []NetscalerLoadBalancerNetworkService `json:"service"`
+	Specifyipranges             bool                                  `json:"specifyipranges"`
+	State                       string                                `json:"state"`
+	Strechedl2subnet            bool                                  `json:"strechedl2subnet"`
+	Subdomainaccess             bool                                  `json:"subdomainaccess"`
+	Tags                        []Tags                                `json:"tags"`
+	Traffictype                 string                                `json:"traffictype"`
+	Type                        string                                `json:"type"`
+	Vlan                        string                                `json:"vlan"`
+	Vpcid                       string                                `json:"vpcid"`
+	Zoneid                      string                                `json:"zoneid"`
+	Zonename                    string                                `json:"zonename"`
+	Zonesnetworkspans           []interface{}                         `json:"zonesnetworkspans"`
+}
+
+type NetscalerLoadBalancerNetworkService struct {
+	Capability []NetscalerLoadBalancerNetworkServiceCapability `json:"capability"`
+	Name       string                                          `json:"name"`
+	Provider   []NetscalerLoadBalancerNetworkServiceProvider   `json:"provider"`
+}
+
+type NetscalerLoadBalancerNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type NetscalerLoadBalancerNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type ListNetworkIsolationMethodsParams struct {
@@ -2604,81 +2420,78 @@
 }
 
 type Network struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
+	Account                     string                   `json:"account"`
+	Aclid                       string                   `json:"aclid"`
+	Acltype                     string                   `json:"acltype"`
+	Broadcastdomaintype         string                   `json:"broadcastdomaintype"`
+	Broadcasturi                string                   `json:"broadcasturi"`
+	Canusefordeploy             bool                     `json:"canusefordeploy"`
+	Cidr                        string                   `json:"cidr"`
+	Displaynetwork              bool                     `json:"displaynetwork"`
+	Displaytext                 string                   `json:"displaytext"`
+	Dns1                        string                   `json:"dns1"`
+	Dns2                        string                   `json:"dns2"`
+	Domain                      string                   `json:"domain"`
+	Domainid                    string                   `json:"domainid"`
+	Externalid                  string                   `json:"externalid"`
+	Gateway                     string                   `json:"gateway"`
+	Id                          string                   `json:"id"`
+	Ip6cidr                     string                   `json:"ip6cidr"`
+	Ip6gateway                  string                   `json:"ip6gateway"`
+	Isdefault                   bool                     `json:"isdefault"`
+	Ispersistent                bool                     `json:"ispersistent"`
+	Issystem                    bool                     `json:"issystem"`
+	Name                        string                   `json:"name"`
+	Netmask                     string                   `json:"netmask"`
+	Networkcidr                 string                   `json:"networkcidr"`
+	Networkdomain               string                   `json:"networkdomain"`
+	Networkofferingavailability string                   `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                     `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                   `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                   `json:"networkofferingid"`
+	Networkofferingname         string                   `json:"networkofferingname"`
+	Physicalnetworkid           string                   `json:"physicalnetworkid"`
+	Project                     string                   `json:"project"`
+	Projectid                   string                   `json:"projectid"`
+	Redundantrouter             bool                     `json:"redundantrouter"`
+	Related                     string                   `json:"related"`
+	Reservediprange             string                   `json:"reservediprange"`
+	Restartrequired             bool                     `json:"restartrequired"`
+	Service                     []NetworkServiceInternal `json:"service"`
+	Specifyipranges             bool                     `json:"specifyipranges"`
+	State                       string                   `json:"state"`
+	Strechedl2subnet            bool                     `json:"strechedl2subnet"`
+	Subdomainaccess             bool                     `json:"subdomainaccess"`
+	Tags                        []Tags                   `json:"tags"`
+	Traffictype                 string                   `json:"traffictype"`
+	Type                        string                   `json:"type"`
+	Vlan                        string                   `json:"vlan"`
+	Vpcid                       string                   `json:"vpcid"`
+	Zoneid                      string                   `json:"zoneid"`
+	Zonename                    string                   `json:"zonename"`
+	Zonesnetworkspans           []interface{}            `json:"zonesnetworkspans"`
+}
+
+type NetworkServiceInternal struct {
+	Capability []NetworkServiceInternalCapability `json:"capability"`
+	Name       string                             `json:"name"`
+	Provider   []NetworkServiceInternalProvider   `json:"provider"`
+}
+
+type NetworkServiceInternalProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type NetworkServiceInternalCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type ListNiciraNvpDeviceNetworksParams struct {
@@ -2806,81 +2619,78 @@
 }
 
 type NiciraNvpDeviceNetwork struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
+	Account                     string                          `json:"account"`
+	Aclid                       string                          `json:"aclid"`
+	Acltype                     string                          `json:"acltype"`
+	Broadcastdomaintype         string                          `json:"broadcastdomaintype"`
+	Broadcasturi                string                          `json:"broadcasturi"`
+	Canusefordeploy             bool                            `json:"canusefordeploy"`
+	Cidr                        string                          `json:"cidr"`
+	Displaynetwork              bool                            `json:"displaynetwork"`
+	Displaytext                 string                          `json:"displaytext"`
+	Dns1                        string                          `json:"dns1"`
+	Dns2                        string                          `json:"dns2"`
+	Domain                      string                          `json:"domain"`
+	Domainid                    string                          `json:"domainid"`
+	Externalid                  string                          `json:"externalid"`
+	Gateway                     string                          `json:"gateway"`
+	Id                          string                          `json:"id"`
+	Ip6cidr                     string                          `json:"ip6cidr"`
+	Ip6gateway                  string                          `json:"ip6gateway"`
+	Isdefault                   bool                            `json:"isdefault"`
+	Ispersistent                bool                            `json:"ispersistent"`
+	Issystem                    bool                            `json:"issystem"`
+	Name                        string                          `json:"name"`
+	Netmask                     string                          `json:"netmask"`
+	Networkcidr                 string                          `json:"networkcidr"`
+	Networkdomain               string                          `json:"networkdomain"`
+	Networkofferingavailability string                          `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                            `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                          `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                          `json:"networkofferingid"`
+	Networkofferingname         string                          `json:"networkofferingname"`
+	Physicalnetworkid           string                          `json:"physicalnetworkid"`
+	Project                     string                          `json:"project"`
+	Projectid                   string                          `json:"projectid"`
+	Redundantrouter             bool                            `json:"redundantrouter"`
+	Related                     string                          `json:"related"`
+	Reservediprange             string                          `json:"reservediprange"`
+	Restartrequired             bool                            `json:"restartrequired"`
+	Service                     []NiciraNvpDeviceNetworkService `json:"service"`
+	Specifyipranges             bool                            `json:"specifyipranges"`
+	State                       string                          `json:"state"`
+	Strechedl2subnet            bool                            `json:"strechedl2subnet"`
+	Subdomainaccess             bool                            `json:"subdomainaccess"`
+	Tags                        []Tags                          `json:"tags"`
+	Traffictype                 string                          `json:"traffictype"`
+	Type                        string                          `json:"type"`
+	Vlan                        string                          `json:"vlan"`
+	Vpcid                       string                          `json:"vpcid"`
+	Zoneid                      string                          `json:"zoneid"`
+	Zonename                    string                          `json:"zonename"`
+	Zonesnetworkspans           []interface{}                   `json:"zonesnetworkspans"`
+}
+
+type NiciraNvpDeviceNetworkService struct {
+	Capability []NiciraNvpDeviceNetworkServiceCapability `json:"capability"`
+	Name       string                                    `json:"name"`
+	Provider   []NiciraNvpDeviceNetworkServiceProvider   `json:"provider"`
+}
+
+type NiciraNvpDeviceNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type NiciraNvpDeviceNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type ListOpenDaylightControllersParams struct {
@@ -3111,81 +2921,78 @@
 }
 
 type PaloAltoFirewallNetwork struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
+	Account                     string                           `json:"account"`
+	Aclid                       string                           `json:"aclid"`
+	Acltype                     string                           `json:"acltype"`
+	Broadcastdomaintype         string                           `json:"broadcastdomaintype"`
+	Broadcasturi                string                           `json:"broadcasturi"`
+	Canusefordeploy             bool                             `json:"canusefordeploy"`
+	Cidr                        string                           `json:"cidr"`
+	Displaynetwork              bool                             `json:"displaynetwork"`
+	Displaytext                 string                           `json:"displaytext"`
+	Dns1                        string                           `json:"dns1"`
+	Dns2                        string                           `json:"dns2"`
+	Domain                      string                           `json:"domain"`
+	Domainid                    string                           `json:"domainid"`
+	Externalid                  string                           `json:"externalid"`
+	Gateway                     string                           `json:"gateway"`
+	Id                          string                           `json:"id"`
+	Ip6cidr                     string                           `json:"ip6cidr"`
+	Ip6gateway                  string                           `json:"ip6gateway"`
+	Isdefault                   bool                             `json:"isdefault"`
+	Ispersistent                bool                             `json:"ispersistent"`
+	Issystem                    bool                             `json:"issystem"`
+	Name                        string                           `json:"name"`
+	Netmask                     string                           `json:"netmask"`
+	Networkcidr                 string                           `json:"networkcidr"`
+	Networkdomain               string                           `json:"networkdomain"`
+	Networkofferingavailability string                           `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                             `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                           `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                           `json:"networkofferingid"`
+	Networkofferingname         string                           `json:"networkofferingname"`
+	Physicalnetworkid           string                           `json:"physicalnetworkid"`
+	Project                     string                           `json:"project"`
+	Projectid                   string                           `json:"projectid"`
+	Redundantrouter             bool                             `json:"redundantrouter"`
+	Related                     string                           `json:"related"`
+	Reservediprange             string                           `json:"reservediprange"`
+	Restartrequired             bool                             `json:"restartrequired"`
+	Service                     []PaloAltoFirewallNetworkService `json:"service"`
+	Specifyipranges             bool                             `json:"specifyipranges"`
+	State                       string                           `json:"state"`
+	Strechedl2subnet            bool                             `json:"strechedl2subnet"`
+	Subdomainaccess             bool                             `json:"subdomainaccess"`
+	Tags                        []Tags                           `json:"tags"`
+	Traffictype                 string                           `json:"traffictype"`
+	Type                        string                           `json:"type"`
+	Vlan                        string                           `json:"vlan"`
+	Vpcid                       string                           `json:"vpcid"`
+	Zoneid                      string                           `json:"zoneid"`
+	Zonename                    string                           `json:"zonename"`
+	Zonesnetworkspans           []interface{}                    `json:"zonesnetworkspans"`
+}
+
+type PaloAltoFirewallNetworkService struct {
+	Capability []PaloAltoFirewallNetworkServiceCapability `json:"capability"`
+	Name       string                                     `json:"name"`
+	Provider   []PaloAltoFirewallNetworkServiceProvider   `json:"provider"`
+}
+
+type PaloAltoFirewallNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type PaloAltoFirewallNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type ListPhysicalNetworksParams struct {
@@ -3392,208 +3199,6 @@
 	Zoneid               string `json:"zoneid"`
 }
 
-type ListSrxFirewallNetworksParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListSrxFirewallNetworksParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["lbdeviceid"]; found {
-		u.Set("lbdeviceid", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	return u
-}
-
-func (p *ListSrxFirewallNetworksParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListSrxFirewallNetworksParams) SetLbdeviceid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["lbdeviceid"] = v
-	return
-}
-
-func (p *ListSrxFirewallNetworksParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListSrxFirewallNetworksParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-// You should always use this function to get a new ListSrxFirewallNetworksParams instance,
-// as then you are sure you have configured all required params
-func (s *NetworkService) NewListSrxFirewallNetworksParams(lbdeviceid string) *ListSrxFirewallNetworksParams {
-	p := &ListSrxFirewallNetworksParams{}
-	p.p = make(map[string]interface{})
-	p.p["lbdeviceid"] = lbdeviceid
-	return p
-}
-
-// This is a courtesy helper function, which in some cases may not work as expected!
-func (s *NetworkService) GetSrxFirewallNetworkID(keyword string, lbdeviceid string, opts ...OptionFunc) (string, int, error) {
-	p := &ListSrxFirewallNetworksParams{}
-	p.p = make(map[string]interface{})
-
-	p.p["keyword"] = keyword
-	p.p["lbdeviceid"] = lbdeviceid
-
-	for _, fn := range append(s.cs.options, opts...) {
-		if err := fn(s.cs, p); err != nil {
-			return "", -1, err
-		}
-	}
-
-	l, err := s.ListSrxFirewallNetworks(p)
-	if err != nil {
-		return "", -1, err
-	}
-
-	if l.Count == 0 {
-		return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l)
-	}
-
-	if l.Count == 1 {
-		return l.SrxFirewallNetworks[0].Id, l.Count, nil
-	}
-
-	if l.Count > 1 {
-		for _, v := range l.SrxFirewallNetworks {
-			if v.Name == keyword {
-				return v.Id, l.Count, nil
-			}
-		}
-	}
-	return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l)
-}
-
-// lists network that are using SRX firewall device
-func (s *NetworkService) ListSrxFirewallNetworks(p *ListSrxFirewallNetworksParams) (*ListSrxFirewallNetworksResponse, error) {
-	resp, err := s.cs.newRequest("listSrxFirewallNetworks", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListSrxFirewallNetworksResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListSrxFirewallNetworksResponse struct {
-	Count               int                   `json:"count"`
-	SrxFirewallNetworks []*SrxFirewallNetwork `json:"srxfirewallnetwork"`
-}
-
-type SrxFirewallNetwork struct {
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-}
-
 type ListStorageNetworkIpRangeParams struct {
 	p map[string]interface{}
 }
@@ -3845,21 +3450,25 @@
 }
 
 type SupportedNetworkService struct {
-	Capability []struct {
-		Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-		Name                       string `json:"name"`
-		Value                      string `json:"value"`
-	} `json:"capability"`
-	Name     string `json:"name"`
-	Provider []struct {
-		Canenableindividualservice   bool     `json:"canenableindividualservice"`
-		Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-		Id                           string   `json:"id"`
-		Name                         string   `json:"name"`
-		Physicalnetworkid            string   `json:"physicalnetworkid"`
-		Servicelist                  []string `json:"servicelist"`
-		State                        string   `json:"state"`
-	} `json:"provider"`
+	Capability []SupportedNetworkServiceCapability `json:"capability"`
+	Name       string                              `json:"name"`
+	Provider   []SupportedNetworkServiceProvider   `json:"provider"`
+}
+
+type SupportedNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type SupportedNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type ReleasePublicIpRangeParams struct {
@@ -3911,7 +3520,26 @@
 
 type ReleasePublicIpRangeResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *ReleasePublicIpRangeResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias ReleasePublicIpRangeResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type RestartNetworkParams struct {
@@ -3930,6 +3558,10 @@
 	if v, found := p.p["id"]; found {
 		u.Set("id", v.(string))
 	}
+	if v, found := p.p["makeredundant"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("makeredundant", vv)
+	}
 	return u
 }
 
@@ -3949,6 +3581,14 @@
 	return
 }
 
+func (p *RestartNetworkParams) SetMakeredundant(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["makeredundant"] = v
+	return
+}
+
 // You should always use this function to get a new RestartNetworkParams instance,
 // as then you are sure you have configured all required params
 func (s *NetworkService) NewRestartNetworkParams(id string) *RestartNetworkParams {
@@ -3994,39 +3634,28 @@
 }
 
 type RestartNetworkResponse struct {
-	JobID                 string `json:"jobid"`
-	Account               string `json:"account"`
-	Allocated             string `json:"allocated"`
-	Associatednetworkid   string `json:"associatednetworkid"`
-	Associatednetworkname string `json:"associatednetworkname"`
-	Domain                string `json:"domain"`
-	Domainid              string `json:"domainid"`
-	Fordisplay            bool   `json:"fordisplay"`
-	Forvirtualnetwork     bool   `json:"forvirtualnetwork"`
-	Id                    string `json:"id"`
-	Ipaddress             string `json:"ipaddress"`
-	Isportable            bool   `json:"isportable"`
-	Issourcenat           bool   `json:"issourcenat"`
-	Isstaticnat           bool   `json:"isstaticnat"`
-	Issystem              bool   `json:"issystem"`
-	Networkid             string `json:"networkid"`
-	Physicalnetworkid     string `json:"physicalnetworkid"`
-	Project               string `json:"project"`
-	Projectid             string `json:"projectid"`
-	Purpose               string `json:"purpose"`
-	State                 string `json:"state"`
-	Tags                  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	JobID                     string `json:"jobid"`
+	Account                   string `json:"account"`
+	Allocated                 string `json:"allocated"`
+	Associatednetworkid       string `json:"associatednetworkid"`
+	Associatednetworkname     string `json:"associatednetworkname"`
+	Domain                    string `json:"domain"`
+	Domainid                  string `json:"domainid"`
+	Fordisplay                bool   `json:"fordisplay"`
+	Forvirtualnetwork         bool   `json:"forvirtualnetwork"`
+	Id                        string `json:"id"`
+	Ipaddress                 string `json:"ipaddress"`
+	Isportable                bool   `json:"isportable"`
+	Issourcenat               bool   `json:"issourcenat"`
+	Isstaticnat               bool   `json:"isstaticnat"`
+	Issystem                  bool   `json:"issystem"`
+	Networkid                 string `json:"networkid"`
+	Physicalnetworkid         string `json:"physicalnetworkid"`
+	Project                   string `json:"project"`
+	Projectid                 string `json:"projectid"`
+	Purpose                   string `json:"purpose"`
+	State                     string `json:"state"`
+	Tags                      []Tags `json:"tags"`
 	Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
 	Virtualmachineid          string `json:"virtualmachineid"`
 	Virtualmachinename        string `json:"virtualmachinename"`
@@ -4061,6 +3690,10 @@
 	if v, found := p.p["displaytext"]; found {
 		u.Set("displaytext", v.(string))
 	}
+	if v, found := p.p["forced"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("forced", vv)
+	}
 	if v, found := p.p["guestvmcidr"]; found {
 		u.Set("guestvmcidr", v.(string))
 	}
@@ -4076,6 +3709,10 @@
 	if v, found := p.p["networkofferingid"]; found {
 		u.Set("networkofferingid", v.(string))
 	}
+	if v, found := p.p["updateinsequence"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("updateinsequence", vv)
+	}
 	return u
 }
 
@@ -4111,6 +3748,14 @@
 	return
 }
 
+func (p *UpdateNetworkParams) SetForced(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["forced"] = v
+	return
+}
+
 func (p *UpdateNetworkParams) SetGuestvmcidr(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -4151,6 +3796,14 @@
 	return
 }
 
+func (p *UpdateNetworkParams) SetUpdateinsequence(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["updateinsequence"] = v
+	return
+}
+
 // You should always use this function to get a new UpdateNetworkParams instance,
 // as then you are sure you have configured all required params
 func (s *NetworkService) NewUpdateNetworkParams(id string) *UpdateNetworkParams {
@@ -4196,82 +3849,79 @@
 }
 
 type UpdateNetworkResponse struct {
-	JobID                       string `json:"jobid"`
-	Account                     string `json:"account"`
-	Aclid                       string `json:"aclid"`
-	Acltype                     string `json:"acltype"`
-	Broadcastdomaintype         string `json:"broadcastdomaintype"`
-	Broadcasturi                string `json:"broadcasturi"`
-	Canusefordeploy             bool   `json:"canusefordeploy"`
-	Cidr                        string `json:"cidr"`
-	Displaynetwork              bool   `json:"displaynetwork"`
-	Displaytext                 string `json:"displaytext"`
-	Dns1                        string `json:"dns1"`
-	Dns2                        string `json:"dns2"`
-	Domain                      string `json:"domain"`
-	Domainid                    string `json:"domainid"`
-	Gateway                     string `json:"gateway"`
-	Id                          string `json:"id"`
-	Ip6cidr                     string `json:"ip6cidr"`
-	Ip6gateway                  string `json:"ip6gateway"`
-	Isdefault                   bool   `json:"isdefault"`
-	Ispersistent                bool   `json:"ispersistent"`
-	Issystem                    bool   `json:"issystem"`
-	Name                        string `json:"name"`
-	Netmask                     string `json:"netmask"`
-	Networkcidr                 string `json:"networkcidr"`
-	Networkdomain               string `json:"networkdomain"`
-	Networkofferingavailability string `json:"networkofferingavailability"`
-	Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-	Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-	Networkofferingid           string `json:"networkofferingid"`
-	Networkofferingname         string `json:"networkofferingname"`
-	Physicalnetworkid           string `json:"physicalnetworkid"`
-	Project                     string `json:"project"`
-	Projectid                   string `json:"projectid"`
-	Related                     string `json:"related"`
-	Reservediprange             string `json:"reservediprange"`
-	Restartrequired             bool   `json:"restartrequired"`
-	Service                     []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	Specifyipranges  bool   `json:"specifyipranges"`
-	State            string `json:"state"`
-	Strechedl2subnet bool   `json:"strechedl2subnet"`
-	Subdomainaccess  bool   `json:"subdomainaccess"`
-	Tags             []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Traffictype       string        `json:"traffictype"`
-	Type              string        `json:"type"`
-	Vlan              string        `json:"vlan"`
-	Vpcid             string        `json:"vpcid"`
-	Zoneid            string        `json:"zoneid"`
-	Zonename          string        `json:"zonename"`
-	Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
+	JobID                       string                         `json:"jobid"`
+	Account                     string                         `json:"account"`
+	Aclid                       string                         `json:"aclid"`
+	Acltype                     string                         `json:"acltype"`
+	Broadcastdomaintype         string                         `json:"broadcastdomaintype"`
+	Broadcasturi                string                         `json:"broadcasturi"`
+	Canusefordeploy             bool                           `json:"canusefordeploy"`
+	Cidr                        string                         `json:"cidr"`
+	Displaynetwork              bool                           `json:"displaynetwork"`
+	Displaytext                 string                         `json:"displaytext"`
+	Dns1                        string                         `json:"dns1"`
+	Dns2                        string                         `json:"dns2"`
+	Domain                      string                         `json:"domain"`
+	Domainid                    string                         `json:"domainid"`
+	Externalid                  string                         `json:"externalid"`
+	Gateway                     string                         `json:"gateway"`
+	Id                          string                         `json:"id"`
+	Ip6cidr                     string                         `json:"ip6cidr"`
+	Ip6gateway                  string                         `json:"ip6gateway"`
+	Isdefault                   bool                           `json:"isdefault"`
+	Ispersistent                bool                           `json:"ispersistent"`
+	Issystem                    bool                           `json:"issystem"`
+	Name                        string                         `json:"name"`
+	Netmask                     string                         `json:"netmask"`
+	Networkcidr                 string                         `json:"networkcidr"`
+	Networkdomain               string                         `json:"networkdomain"`
+	Networkofferingavailability string                         `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                           `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                         `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                         `json:"networkofferingid"`
+	Networkofferingname         string                         `json:"networkofferingname"`
+	Physicalnetworkid           string                         `json:"physicalnetworkid"`
+	Project                     string                         `json:"project"`
+	Projectid                   string                         `json:"projectid"`
+	Redundantrouter             bool                           `json:"redundantrouter"`
+	Related                     string                         `json:"related"`
+	Reservediprange             string                         `json:"reservediprange"`
+	Restartrequired             bool                           `json:"restartrequired"`
+	Service                     []UpdateNetworkResponseService `json:"service"`
+	Specifyipranges             bool                           `json:"specifyipranges"`
+	State                       string                         `json:"state"`
+	Strechedl2subnet            bool                           `json:"strechedl2subnet"`
+	Subdomainaccess             bool                           `json:"subdomainaccess"`
+	Tags                        []Tags                         `json:"tags"`
+	Traffictype                 string                         `json:"traffictype"`
+	Type                        string                         `json:"type"`
+	Vlan                        string                         `json:"vlan"`
+	Vpcid                       string                         `json:"vpcid"`
+	Zoneid                      string                         `json:"zoneid"`
+	Zonename                    string                         `json:"zonename"`
+	Zonesnetworkspans           []interface{}                  `json:"zonesnetworkspans"`
+}
+
+type UpdateNetworkResponseService struct {
+	Capability []UpdateNetworkResponseServiceCapability `json:"capability"`
+	Name       string                                   `json:"name"`
+	Provider   []UpdateNetworkResponseServiceProvider   `json:"provider"`
+}
+
+type UpdateNetworkResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type UpdateNetworkResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type UpdateNetworkServiceProviderParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NicService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NicService.go
index a6a93d8..525f1b9 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/NicService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/NicService.go
@@ -101,11 +101,15 @@
 }
 
 type AddIpToNicResponse struct {
-	JobID            string `json:"jobid"`
-	Id               string `json:"id"`
-	Ipaddress        string `json:"ipaddress"`
-	Networkid        string `json:"networkid"`
-	Nicid            string `json:"nicid"`
+	JobID       string `json:"jobid"`
+	Id          string `json:"id"`
+	Ipaddress   string `json:"ipaddress"`
+	Networkid   string `json:"networkid"`
+	Nicid       string `json:"nicid"`
+	Secondaryip []struct {
+		Id        string `json:"id"`
+		Ipaddress string `json:"ipaddress"`
+	} `json:"secondaryip"`
 	Virtualmachineid string `json:"virtualmachineid"`
 }
 
@@ -231,22 +235,23 @@
 }
 
 type Nic struct {
-	Broadcasturi         string `json:"broadcasturi"`
-	Deviceid             string `json:"deviceid"`
-	Gateway              string `json:"gateway"`
-	Id                   string `json:"id"`
-	Ip6address           string `json:"ip6address"`
-	Ip6cidr              string `json:"ip6cidr"`
-	Ip6gateway           string `json:"ip6gateway"`
-	Ipaddress            string `json:"ipaddress"`
-	Isdefault            bool   `json:"isdefault"`
-	Isolationuri         string `json:"isolationuri"`
-	Macaddress           string `json:"macaddress"`
-	Netmask              string `json:"netmask"`
-	Networkid            string `json:"networkid"`
-	Networkname          string `json:"networkname"`
-	Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-	Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
+	Broadcasturi         string   `json:"broadcasturi"`
+	Deviceid             string   `json:"deviceid"`
+	Extradhcpoption      []string `json:"extradhcpoption"`
+	Gateway              string   `json:"gateway"`
+	Id                   string   `json:"id"`
+	Ip6address           string   `json:"ip6address"`
+	Ip6cidr              string   `json:"ip6cidr"`
+	Ip6gateway           string   `json:"ip6gateway"`
+	Ipaddress            string   `json:"ipaddress"`
+	Isdefault            bool     `json:"isdefault"`
+	Isolationuri         string   `json:"isolationuri"`
+	Macaddress           string   `json:"macaddress"`
+	Netmask              string   `json:"netmask"`
+	Networkid            string   `json:"networkid"`
+	Networkname          string   `json:"networkname"`
+	Nsxlogicalswitch     string   `json:"nsxlogicalswitch"`
+	Nsxlogicalswitchport string   `json:"nsxlogicalswitchport"`
 	Secondaryip          []struct {
 		Id        string `json:"id"`
 		Ipaddress string `json:"ipaddress"`
@@ -403,171 +408,109 @@
 }
 
 type UpdateVmNicIpResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                               `json:"jobid"`
+	Account               string                               `json:"account"`
+	Affinitygroup         []UpdateVmNicIpResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                  `json:"cpunumber"`
+	Cpuspeed              int                                  `json:"cpuspeed"`
+	Cpuused               string                               `json:"cpuused"`
+	Created               string                               `json:"created"`
+	Details               map[string]string                    `json:"details"`
+	Diskioread            int64                                `json:"diskioread"`
+	Diskiowrite           int64                                `json:"diskiowrite"`
+	Diskkbsread           int64                                `json:"diskkbsread"`
+	Diskkbswrite          int64                                `json:"diskkbswrite"`
+	Diskofferingid        string                               `json:"diskofferingid"`
+	Diskofferingname      string                               `json:"diskofferingname"`
+	Displayname           string                               `json:"displayname"`
+	Displayvm             bool                                 `json:"displayvm"`
+	Domain                string                               `json:"domain"`
+	Domainid              string                               `json:"domainid"`
+	Forvirtualnetwork     bool                                 `json:"forvirtualnetwork"`
+	Group                 string                               `json:"group"`
+	Groupid               string                               `json:"groupid"`
+	Guestosid             string                               `json:"guestosid"`
+	Haenable              bool                                 `json:"haenable"`
+	Hostid                string                               `json:"hostid"`
+	Hostname              string                               `json:"hostname"`
+	Hypervisor            string                               `json:"hypervisor"`
+	Id                    string                               `json:"id"`
+	Instancename          string                               `json:"instancename"`
+	Isdynamicallyscalable bool                                 `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                               `json:"isodisplaytext"`
+	Isoid                 string                               `json:"isoid"`
+	Isoname               string                               `json:"isoname"`
+	Keypair               string                               `json:"keypair"`
+	Memory                int                                  `json:"memory"`
+	Memoryintfreekbs      int64                                `json:"memoryintfreekbs"`
+	Memorykbs             int64                                `json:"memorykbs"`
+	Memorytargetkbs       int64                                `json:"memorytargetkbs"`
+	Name                  string                               `json:"name"`
+	Networkkbsread        int64                                `json:"networkkbsread"`
+	Networkkbswrite       int64                                `json:"networkkbswrite"`
+	Nic                   []Nic                                `json:"nic"`
+	Ostypeid              int64                                `json:"ostypeid"`
+	Password              string                               `json:"password"`
+	Passwordenabled       bool                                 `json:"passwordenabled"`
+	Project               string                               `json:"project"`
+	Projectid             string                               `json:"projectid"`
+	Publicip              string                               `json:"publicip"`
+	Publicipid            string                               `json:"publicipid"`
+	Rootdeviceid          int64                                `json:"rootdeviceid"`
+	Rootdevicetype        string                               `json:"rootdevicetype"`
+	Securitygroup         []UpdateVmNicIpResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                               `json:"serviceofferingid"`
+	Serviceofferingname   string                               `json:"serviceofferingname"`
+	Servicestate          string                               `json:"servicestate"`
+	State                 string                               `json:"state"`
+	Templatedisplaytext   string                               `json:"templatedisplaytext"`
+	Templateid            string                               `json:"templateid"`
+	Templatename          string                               `json:"templatename"`
+	Userid                string                               `json:"userid"`
+	Username              string                               `json:"username"`
+	Vgpu                  string                               `json:"vgpu"`
+	Zoneid                string                               `json:"zoneid"`
+	Zonename              string                               `json:"zonename"`
+}
+
+type UpdateVmNicIpResponseSecuritygroup struct {
+	Account             string                                   `json:"account"`
+	Description         string                                   `json:"description"`
+	Domain              string                                   `json:"domain"`
+	Domainid            string                                   `json:"domainid"`
+	Egressrule          []UpdateVmNicIpResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                   `json:"id"`
+	Ingressrule         []UpdateVmNicIpResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                   `json:"name"`
+	Project             string                                   `json:"project"`
+	Projectid           string                                   `json:"projectid"`
+	Tags                []Tags                                   `json:"tags"`
+	Virtualmachinecount int                                      `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                            `json:"virtualmachineids"`
+}
+
+type UpdateVmNicIpResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type UpdateVmNicIpResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/PodService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/PodService.go
index e16a688..377e261 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/PodService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/PodService.go
@@ -142,27 +142,33 @@
 }
 
 type CreatePodResponse struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
-	Endip    string `json:"endip"`
-	Gateway  string `json:"gateway"`
-	Id       string `json:"id"`
-	Name     string `json:"name"`
-	Netmask  string `json:"netmask"`
-	Startip  string `json:"startip"`
-	Zoneid   string `json:"zoneid"`
-	Zonename string `json:"zonename"`
+	Allocationstate string                      `json:"allocationstate"`
+	Capacity        []CreatePodResponseCapacity `json:"capacity"`
+	Endip           []string                    `json:"endip"`
+	Forsystemvms    []string                    `json:"forsystemvms"`
+	Gateway         string                      `json:"gateway"`
+	Id              string                      `json:"id"`
+	Name            string                      `json:"name"`
+	Netmask         string                      `json:"netmask"`
+	Startip         []string                    `json:"startip"`
+	Vlanid          []string                    `json:"vlanid"`
+	Zoneid          string                      `json:"zoneid"`
+	Zonename        string                      `json:"zonename"`
+}
+
+type CreatePodResponseCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
 
 type DedicatePodParams struct {
@@ -314,7 +320,26 @@
 
 type DeletePodResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeletePodResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeletePodResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListDedicatedPodsParams struct {
@@ -660,27 +685,33 @@
 }
 
 type Pod struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
-	Endip    string `json:"endip"`
-	Gateway  string `json:"gateway"`
-	Id       string `json:"id"`
-	Name     string `json:"name"`
-	Netmask  string `json:"netmask"`
-	Startip  string `json:"startip"`
-	Zoneid   string `json:"zoneid"`
-	Zonename string `json:"zonename"`
+	Allocationstate string        `json:"allocationstate"`
+	Capacity        []PodCapacity `json:"capacity"`
+	Endip           []string      `json:"endip"`
+	Forsystemvms    []string      `json:"forsystemvms"`
+	Gateway         string        `json:"gateway"`
+	Id              string        `json:"id"`
+	Name            string        `json:"name"`
+	Netmask         string        `json:"netmask"`
+	Startip         []string      `json:"startip"`
+	Vlanid          []string      `json:"vlanid"`
+	Zoneid          string        `json:"zoneid"`
+	Zonename        string        `json:"zonename"`
+}
+
+type PodCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
 
 type ReleaseDedicatedPodParams struct {
@@ -865,25 +896,31 @@
 }
 
 type UpdatePodResponse struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
-	Endip    string `json:"endip"`
-	Gateway  string `json:"gateway"`
-	Id       string `json:"id"`
-	Name     string `json:"name"`
-	Netmask  string `json:"netmask"`
-	Startip  string `json:"startip"`
-	Zoneid   string `json:"zoneid"`
-	Zonename string `json:"zonename"`
+	Allocationstate string                      `json:"allocationstate"`
+	Capacity        []UpdatePodResponseCapacity `json:"capacity"`
+	Endip           []string                    `json:"endip"`
+	Forsystemvms    []string                    `json:"forsystemvms"`
+	Gateway         string                      `json:"gateway"`
+	Id              string                      `json:"id"`
+	Name            string                      `json:"name"`
+	Netmask         string                      `json:"netmask"`
+	Startip         []string                    `json:"startip"`
+	Vlanid          []string                    `json:"vlanid"`
+	Zoneid          string                      `json:"zoneid"`
+	Zonename        string                      `json:"zonename"`
+}
+
+type UpdatePodResponseCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/PoolService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/PoolService.go
index cdd8e59..b235a28 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/PoolService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/PoolService.go
@@ -213,6 +213,7 @@
 }
 
 type CreateStoragePoolResponse struct {
+	Allocatediops        int64             `json:"allocatediops"`
 	Capacityiops         int64             `json:"capacityiops"`
 	Clusterid            string            `json:"clusterid"`
 	Clustername          string            `json:"clustername"`
@@ -228,6 +229,7 @@
 	Path                 string            `json:"path"`
 	Podid                string            `json:"podid"`
 	Podname              string            `json:"podname"`
+	Provider             string            `json:"provider"`
 	Scope                string            `json:"scope"`
 	State                string            `json:"state"`
 	Storagecapabilities  map[string]string `json:"storagecapabilities"`
@@ -299,7 +301,26 @@
 
 type DeleteStoragePoolResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteStoragePoolResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteStoragePoolResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type FindStoragePoolsForMigrationParams struct {
@@ -385,6 +406,7 @@
 }
 
 type FindStoragePoolsForMigrationResponse struct {
+	Allocatediops        int64             `json:"allocatediops"`
 	Capacityiops         int64             `json:"capacityiops"`
 	Clusterid            string            `json:"clusterid"`
 	Clustername          string            `json:"clustername"`
@@ -400,6 +422,7 @@
 	Path                 string            `json:"path"`
 	Podid                string            `json:"podid"`
 	Podname              string            `json:"podname"`
+	Provider             string            `json:"provider"`
 	Scope                string            `json:"scope"`
 	State                string            `json:"state"`
 	Storagecapabilities  map[string]string `json:"storagecapabilities"`
@@ -657,6 +680,7 @@
 }
 
 type StoragePool struct {
+	Allocatediops        int64             `json:"allocatediops"`
 	Capacityiops         int64             `json:"capacityiops"`
 	Clusterid            string            `json:"clusterid"`
 	Clustername          string            `json:"clustername"`
@@ -672,6 +696,7 @@
 	Path                 string            `json:"path"`
 	Podid                string            `json:"podid"`
 	Podname              string            `json:"podname"`
+	Provider             string            `json:"provider"`
 	Scope                string            `json:"scope"`
 	State                string            `json:"state"`
 	Storagecapabilities  map[string]string `json:"storagecapabilities"`
@@ -778,6 +803,7 @@
 }
 
 type UpdateStoragePoolResponse struct {
+	Allocatediops        int64             `json:"allocatediops"`
 	Capacityiops         int64             `json:"capacityiops"`
 	Clusterid            string            `json:"clusterid"`
 	Clustername          string            `json:"clustername"`
@@ -793,6 +819,7 @@
 	Path                 string            `json:"path"`
 	Podid                string            `json:"podid"`
 	Podname              string            `json:"podname"`
+	Provider             string            `json:"provider"`
 	Scope                string            `json:"scope"`
 	State                string            `json:"state"`
 	Storagecapabilities  map[string]string `json:"storagecapabilities"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/PortableIPService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/PortableIPService.go
index bf7bfa6..6a9ddf7 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/PortableIPService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/PortableIPService.go
@@ -152,26 +152,28 @@
 }
 
 type CreatePortableIpRangeResponse struct {
-	JobID             string `json:"jobid"`
-	Endip             string `json:"endip"`
-	Gateway           string `json:"gateway"`
-	Id                string `json:"id"`
-	Netmask           string `json:"netmask"`
-	Portableipaddress []struct {
-		Accountid         string `json:"accountid"`
-		Allocated         string `json:"allocated"`
-		Domainid          string `json:"domainid"`
-		Ipaddress         string `json:"ipaddress"`
-		Networkid         string `json:"networkid"`
-		Physicalnetworkid string `json:"physicalnetworkid"`
-		Regionid          int    `json:"regionid"`
-		State             string `json:"state"`
-		Vpcid             string `json:"vpcid"`
-		Zoneid            string `json:"zoneid"`
-	} `json:"portableipaddress"`
-	Regionid int    `json:"regionid"`
-	Startip  string `json:"startip"`
-	Vlan     string `json:"vlan"`
+	JobID             string                                           `json:"jobid"`
+	Endip             string                                           `json:"endip"`
+	Gateway           string                                           `json:"gateway"`
+	Id                string                                           `json:"id"`
+	Netmask           string                                           `json:"netmask"`
+	Portableipaddress []CreatePortableIpRangeResponsePortableipaddress `json:"portableipaddress"`
+	Regionid          int                                              `json:"regionid"`
+	Startip           string                                           `json:"startip"`
+	Vlan              string                                           `json:"vlan"`
+}
+
+type CreatePortableIpRangeResponsePortableipaddress struct {
+	Accountid         string `json:"accountid"`
+	Allocated         string `json:"allocated"`
+	Domainid          string `json:"domainid"`
+	Ipaddress         string `json:"ipaddress"`
+	Networkid         string `json:"networkid"`
+	Physicalnetworkid string `json:"physicalnetworkid"`
+	Regionid          int    `json:"regionid"`
+	State             string `json:"state"`
+	Vpcid             string `json:"vpcid"`
+	Zoneid            string `json:"zoneid"`
 }
 
 type DeletePortableIpRangeParams struct {
@@ -374,23 +376,25 @@
 }
 
 type PortableIpRange struct {
-	Endip             string `json:"endip"`
-	Gateway           string `json:"gateway"`
-	Id                string `json:"id"`
-	Netmask           string `json:"netmask"`
-	Portableipaddress []struct {
-		Accountid         string `json:"accountid"`
-		Allocated         string `json:"allocated"`
-		Domainid          string `json:"domainid"`
-		Ipaddress         string `json:"ipaddress"`
-		Networkid         string `json:"networkid"`
-		Physicalnetworkid string `json:"physicalnetworkid"`
-		Regionid          int    `json:"regionid"`
-		State             string `json:"state"`
-		Vpcid             string `json:"vpcid"`
-		Zoneid            string `json:"zoneid"`
-	} `json:"portableipaddress"`
-	Regionid int    `json:"regionid"`
-	Startip  string `json:"startip"`
-	Vlan     string `json:"vlan"`
+	Endip             string                             `json:"endip"`
+	Gateway           string                             `json:"gateway"`
+	Id                string                             `json:"id"`
+	Netmask           string                             `json:"netmask"`
+	Portableipaddress []PortableIpRangePortableipaddress `json:"portableipaddress"`
+	Regionid          int                                `json:"regionid"`
+	Startip           string                             `json:"startip"`
+	Vlan              string                             `json:"vlan"`
+}
+
+type PortableIpRangePortableipaddress struct {
+	Accountid         string `json:"accountid"`
+	Allocated         string `json:"allocated"`
+	Domainid          string `json:"domainid"`
+	Ipaddress         string `json:"ipaddress"`
+	Networkid         string `json:"networkid"`
+	Physicalnetworkid string `json:"physicalnetworkid"`
+	Regionid          int    `json:"regionid"`
+	State             string `json:"state"`
+	Vpcid             string `json:"vpcid"`
+	Zoneid            string `json:"zoneid"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ProjectService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ProjectService.go
index 926ddcf..de767a1 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ProjectService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ProjectService.go
@@ -92,61 +92,51 @@
 }
 
 type ActivateProjectResponse struct {
-	JobID                     string `json:"jobid"`
-	Account                   string `json:"account"`
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Displaytext               string `json:"displaytext"`
-	Domain                    string `json:"domain"`
-	Domainid                  string `json:"domainid"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Tags                      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Templateavailable string `json:"templateavailable"`
-	Templatelimit     string `json:"templatelimit"`
-	Templatetotal     int64  `json:"templatetotal"`
-	Vmavailable       string `json:"vmavailable"`
-	Vmlimit           string `json:"vmlimit"`
-	Vmrunning         int    `json:"vmrunning"`
-	Vmstopped         int    `json:"vmstopped"`
-	Vmtotal           int64  `json:"vmtotal"`
-	Volumeavailable   string `json:"volumeavailable"`
-	Volumelimit       string `json:"volumelimit"`
-	Volumetotal       int64  `json:"volumetotal"`
-	Vpcavailable      string `json:"vpcavailable"`
-	Vpclimit          string `json:"vpclimit"`
-	Vpctotal          int64  `json:"vpctotal"`
+	JobID                     string  `json:"jobid"`
+	Account                   string  `json:"account"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Displaytext               string  `json:"displaytext"`
+	Domain                    string  `json:"domain"`
+	Domainid                  string  `json:"domainid"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectaccountname        string  `json:"projectaccountname"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Tags                      []Tags  `json:"tags"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmrunning                 int     `json:"vmrunning"`
+	Vmstopped                 int     `json:"vmstopped"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type CreateProjectParams struct {
@@ -251,61 +241,51 @@
 }
 
 type CreateProjectResponse struct {
-	JobID                     string `json:"jobid"`
-	Account                   string `json:"account"`
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Displaytext               string `json:"displaytext"`
-	Domain                    string `json:"domain"`
-	Domainid                  string `json:"domainid"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Tags                      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Templateavailable string `json:"templateavailable"`
-	Templatelimit     string `json:"templatelimit"`
-	Templatetotal     int64  `json:"templatetotal"`
-	Vmavailable       string `json:"vmavailable"`
-	Vmlimit           string `json:"vmlimit"`
-	Vmrunning         int    `json:"vmrunning"`
-	Vmstopped         int    `json:"vmstopped"`
-	Vmtotal           int64  `json:"vmtotal"`
-	Volumeavailable   string `json:"volumeavailable"`
-	Volumelimit       string `json:"volumelimit"`
-	Volumetotal       int64  `json:"volumetotal"`
-	Vpcavailable      string `json:"vpcavailable"`
-	Vpclimit          string `json:"vpclimit"`
-	Vpctotal          int64  `json:"vpctotal"`
+	JobID                     string  `json:"jobid"`
+	Account                   string  `json:"account"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Displaytext               string  `json:"displaytext"`
+	Domain                    string  `json:"domain"`
+	Domainid                  string  `json:"domainid"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectaccountname        string  `json:"projectaccountname"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Tags                      []Tags  `json:"tags"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmrunning                 int     `json:"vmrunning"`
+	Vmstopped                 int     `json:"vmstopped"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type DeleteProjectParams struct {
@@ -919,60 +899,50 @@
 }
 
 type Project struct {
-	Account                   string `json:"account"`
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Displaytext               string `json:"displaytext"`
-	Domain                    string `json:"domain"`
-	Domainid                  string `json:"domainid"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Tags                      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Templateavailable string `json:"templateavailable"`
-	Templatelimit     string `json:"templatelimit"`
-	Templatetotal     int64  `json:"templatetotal"`
-	Vmavailable       string `json:"vmavailable"`
-	Vmlimit           string `json:"vmlimit"`
-	Vmrunning         int    `json:"vmrunning"`
-	Vmstopped         int    `json:"vmstopped"`
-	Vmtotal           int64  `json:"vmtotal"`
-	Volumeavailable   string `json:"volumeavailable"`
-	Volumelimit       string `json:"volumelimit"`
-	Volumetotal       int64  `json:"volumetotal"`
-	Vpcavailable      string `json:"vpcavailable"`
-	Vpclimit          string `json:"vpclimit"`
-	Vpctotal          int64  `json:"vpctotal"`
+	Account                   string  `json:"account"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Displaytext               string  `json:"displaytext"`
+	Domain                    string  `json:"domain"`
+	Domainid                  string  `json:"domainid"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectaccountname        string  `json:"projectaccountname"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Tags                      []Tags  `json:"tags"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmrunning                 int     `json:"vmrunning"`
+	Vmstopped                 int     `json:"vmstopped"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type SuspendProjectParams struct {
@@ -1043,61 +1013,51 @@
 }
 
 type SuspendProjectResponse struct {
-	JobID                     string `json:"jobid"`
-	Account                   string `json:"account"`
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Displaytext               string `json:"displaytext"`
-	Domain                    string `json:"domain"`
-	Domainid                  string `json:"domainid"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Tags                      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Templateavailable string `json:"templateavailable"`
-	Templatelimit     string `json:"templatelimit"`
-	Templatetotal     int64  `json:"templatetotal"`
-	Vmavailable       string `json:"vmavailable"`
-	Vmlimit           string `json:"vmlimit"`
-	Vmrunning         int    `json:"vmrunning"`
-	Vmstopped         int    `json:"vmstopped"`
-	Vmtotal           int64  `json:"vmtotal"`
-	Volumeavailable   string `json:"volumeavailable"`
-	Volumelimit       string `json:"volumelimit"`
-	Volumetotal       int64  `json:"volumetotal"`
-	Vpcavailable      string `json:"vpcavailable"`
-	Vpclimit          string `json:"vpclimit"`
-	Vpctotal          int64  `json:"vpctotal"`
+	JobID                     string  `json:"jobid"`
+	Account                   string  `json:"account"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Displaytext               string  `json:"displaytext"`
+	Domain                    string  `json:"domain"`
+	Domainid                  string  `json:"domainid"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectaccountname        string  `json:"projectaccountname"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Tags                      []Tags  `json:"tags"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmrunning                 int     `json:"vmrunning"`
+	Vmstopped                 int     `json:"vmstopped"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type UpdateProjectParams struct {
@@ -1190,61 +1150,51 @@
 }
 
 type UpdateProjectResponse struct {
-	JobID                     string `json:"jobid"`
-	Account                   string `json:"account"`
-	Cpuavailable              string `json:"cpuavailable"`
-	Cpulimit                  string `json:"cpulimit"`
-	Cputotal                  int64  `json:"cputotal"`
-	Displaytext               string `json:"displaytext"`
-	Domain                    string `json:"domain"`
-	Domainid                  string `json:"domainid"`
-	Id                        string `json:"id"`
-	Ipavailable               string `json:"ipavailable"`
-	Iplimit                   string `json:"iplimit"`
-	Iptotal                   int64  `json:"iptotal"`
-	Memoryavailable           string `json:"memoryavailable"`
-	Memorylimit               string `json:"memorylimit"`
-	Memorytotal               int64  `json:"memorytotal"`
-	Name                      string `json:"name"`
-	Networkavailable          string `json:"networkavailable"`
-	Networklimit              string `json:"networklimit"`
-	Networktotal              int64  `json:"networktotal"`
-	Primarystorageavailable   string `json:"primarystorageavailable"`
-	Primarystoragelimit       string `json:"primarystoragelimit"`
-	Primarystoragetotal       int64  `json:"primarystoragetotal"`
-	Secondarystorageavailable string `json:"secondarystorageavailable"`
-	Secondarystoragelimit     string `json:"secondarystoragelimit"`
-	Secondarystoragetotal     int64  `json:"secondarystoragetotal"`
-	Snapshotavailable         string `json:"snapshotavailable"`
-	Snapshotlimit             string `json:"snapshotlimit"`
-	Snapshottotal             int64  `json:"snapshottotal"`
-	State                     string `json:"state"`
-	Tags                      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Templateavailable string `json:"templateavailable"`
-	Templatelimit     string `json:"templatelimit"`
-	Templatetotal     int64  `json:"templatetotal"`
-	Vmavailable       string `json:"vmavailable"`
-	Vmlimit           string `json:"vmlimit"`
-	Vmrunning         int    `json:"vmrunning"`
-	Vmstopped         int    `json:"vmstopped"`
-	Vmtotal           int64  `json:"vmtotal"`
-	Volumeavailable   string `json:"volumeavailable"`
-	Volumelimit       string `json:"volumelimit"`
-	Volumetotal       int64  `json:"volumetotal"`
-	Vpcavailable      string `json:"vpcavailable"`
-	Vpclimit          string `json:"vpclimit"`
-	Vpctotal          int64  `json:"vpctotal"`
+	JobID                     string  `json:"jobid"`
+	Account                   string  `json:"account"`
+	Cpuavailable              string  `json:"cpuavailable"`
+	Cpulimit                  string  `json:"cpulimit"`
+	Cputotal                  int64   `json:"cputotal"`
+	Displaytext               string  `json:"displaytext"`
+	Domain                    string  `json:"domain"`
+	Domainid                  string  `json:"domainid"`
+	Id                        string  `json:"id"`
+	Ipavailable               string  `json:"ipavailable"`
+	Iplimit                   string  `json:"iplimit"`
+	Iptotal                   int64   `json:"iptotal"`
+	Memoryavailable           string  `json:"memoryavailable"`
+	Memorylimit               string  `json:"memorylimit"`
+	Memorytotal               int64   `json:"memorytotal"`
+	Name                      string  `json:"name"`
+	Networkavailable          string  `json:"networkavailable"`
+	Networklimit              string  `json:"networklimit"`
+	Networktotal              int64   `json:"networktotal"`
+	Primarystorageavailable   string  `json:"primarystorageavailable"`
+	Primarystoragelimit       string  `json:"primarystoragelimit"`
+	Primarystoragetotal       int64   `json:"primarystoragetotal"`
+	Projectaccountname        string  `json:"projectaccountname"`
+	Secondarystorageavailable string  `json:"secondarystorageavailable"`
+	Secondarystoragelimit     string  `json:"secondarystoragelimit"`
+	Secondarystoragetotal     float64 `json:"secondarystoragetotal"`
+	Snapshotavailable         string  `json:"snapshotavailable"`
+	Snapshotlimit             string  `json:"snapshotlimit"`
+	Snapshottotal             int64   `json:"snapshottotal"`
+	State                     string  `json:"state"`
+	Tags                      []Tags  `json:"tags"`
+	Templateavailable         string  `json:"templateavailable"`
+	Templatelimit             string  `json:"templatelimit"`
+	Templatetotal             int64   `json:"templatetotal"`
+	Vmavailable               string  `json:"vmavailable"`
+	Vmlimit                   string  `json:"vmlimit"`
+	Vmrunning                 int     `json:"vmrunning"`
+	Vmstopped                 int     `json:"vmstopped"`
+	Vmtotal                   int64   `json:"vmtotal"`
+	Volumeavailable           string  `json:"volumeavailable"`
+	Volumelimit               string  `json:"volumelimit"`
+	Volumetotal               int64   `json:"volumetotal"`
+	Vpcavailable              string  `json:"vpcavailable"`
+	Vpclimit                  string  `json:"vpclimit"`
+	Vpctotal                  int64   `json:"vpctotal"`
 }
 
 type UpdateProjectInvitationParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/RegionService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/RegionService.go
index 00f8c70..244a8fa 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/RegionService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/RegionService.go
@@ -258,7 +258,26 @@
 
 type RemoveRegionResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *RemoveRegionResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias RemoveRegionResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type UpdateRegionParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/RoleService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/RoleService.go
index 486e116..f348b1d 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/RoleService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/RoleService.go
@@ -240,7 +240,26 @@
 
 type DeleteRoleResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteRoleResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteRoleResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DeleteRolePermissionParams struct {
@@ -292,7 +311,26 @@
 
 type DeleteRolePermissionResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteRolePermissionResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteRolePermissionResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListRolePermissionsParams struct {
@@ -599,8 +637,10 @@
 }
 
 type UpdateRoleResponse struct {
-	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Description string `json:"description"`
+	Id          string `json:"id"`
+	Name        string `json:"name"`
+	Type        string `json:"type"`
 }
 
 type UpdateRolePermissionParams struct {
@@ -612,9 +652,15 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["permission"]; found {
+		u.Set("permission", v.(string))
+	}
 	if v, found := p.p["roleid"]; found {
 		u.Set("roleid", v.(string))
 	}
+	if v, found := p.p["ruleid"]; found {
+		u.Set("ruleid", v.(string))
+	}
 	if v, found := p.p["ruleorder"]; found {
 		vv := strings.Join(v.([]string), ",")
 		u.Set("ruleorder", vv)
@@ -622,6 +668,14 @@
 	return u
 }
 
+func (p *UpdateRolePermissionParams) SetPermission(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["permission"] = v
+	return
+}
+
 func (p *UpdateRolePermissionParams) SetRoleid(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -630,6 +684,14 @@
 	return
 }
 
+func (p *UpdateRolePermissionParams) SetRuleid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["ruleid"] = v
+	return
+}
+
 func (p *UpdateRolePermissionParams) SetRuleorder(v []string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -640,11 +702,10 @@
 
 // You should always use this function to get a new UpdateRolePermissionParams instance,
 // as then you are sure you have configured all required params
-func (s *RoleService) NewUpdateRolePermissionParams(roleid string, ruleorder []string) *UpdateRolePermissionParams {
+func (s *RoleService) NewUpdateRolePermissionParams(roleid string) *UpdateRolePermissionParams {
 	p := &UpdateRolePermissionParams{}
 	p.p = make(map[string]interface{})
 	p.p["roleid"] = roleid
-	p.p["ruleorder"] = ruleorder
 	return p
 }
 
@@ -665,5 +726,24 @@
 
 type UpdateRolePermissionResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *UpdateRolePermissionResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias UpdateRolePermissionResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/RouterService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/RouterService.go
index ec34cd3..bf37d75 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/RouterService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/RouterService.go
@@ -109,31 +109,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
@@ -432,31 +408,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
@@ -842,31 +794,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
@@ -1136,31 +1064,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
@@ -1277,31 +1181,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
@@ -1430,31 +1310,7 @@
 	Linklocalnetworkid  string `json:"linklocalnetworkid"`
 	Name                string `json:"name"`
 	Networkdomain       string `json:"networkdomain"`
-	Nic                 []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
+	Nic                 []Nic  `json:"nic"`
 	Podid               string `json:"podid"`
 	Project             string `json:"project"`
 	Projectid           string `json:"projectid"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SSHService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SSHService.go
index d03ba8a..f1f4ab4 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SSHService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SSHService.go
@@ -192,7 +192,26 @@
 
 type DeleteSSHKeyPairResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteSSHKeyPairResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteSSHKeyPairResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListSSHKeyPairsParams struct {
@@ -574,171 +593,109 @@
 }
 
 type ResetSSHKeyForVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                              `json:"jobid"`
+	Account               string                                              `json:"account"`
+	Affinitygroup         []ResetSSHKeyForVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                                 `json:"cpunumber"`
+	Cpuspeed              int                                                 `json:"cpuspeed"`
+	Cpuused               string                                              `json:"cpuused"`
+	Created               string                                              `json:"created"`
+	Details               map[string]string                                   `json:"details"`
+	Diskioread            int64                                               `json:"diskioread"`
+	Diskiowrite           int64                                               `json:"diskiowrite"`
+	Diskkbsread           int64                                               `json:"diskkbsread"`
+	Diskkbswrite          int64                                               `json:"diskkbswrite"`
+	Diskofferingid        string                                              `json:"diskofferingid"`
+	Diskofferingname      string                                              `json:"diskofferingname"`
+	Displayname           string                                              `json:"displayname"`
+	Displayvm             bool                                                `json:"displayvm"`
+	Domain                string                                              `json:"domain"`
+	Domainid              string                                              `json:"domainid"`
+	Forvirtualnetwork     bool                                                `json:"forvirtualnetwork"`
+	Group                 string                                              `json:"group"`
+	Groupid               string                                              `json:"groupid"`
+	Guestosid             string                                              `json:"guestosid"`
+	Haenable              bool                                                `json:"haenable"`
+	Hostid                string                                              `json:"hostid"`
+	Hostname              string                                              `json:"hostname"`
+	Hypervisor            string                                              `json:"hypervisor"`
+	Id                    string                                              `json:"id"`
+	Instancename          string                                              `json:"instancename"`
+	Isdynamicallyscalable bool                                                `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                              `json:"isodisplaytext"`
+	Isoid                 string                                              `json:"isoid"`
+	Isoname               string                                              `json:"isoname"`
+	Keypair               string                                              `json:"keypair"`
+	Memory                int                                                 `json:"memory"`
+	Memoryintfreekbs      int64                                               `json:"memoryintfreekbs"`
+	Memorykbs             int64                                               `json:"memorykbs"`
+	Memorytargetkbs       int64                                               `json:"memorytargetkbs"`
+	Name                  string                                              `json:"name"`
+	Networkkbsread        int64                                               `json:"networkkbsread"`
+	Networkkbswrite       int64                                               `json:"networkkbswrite"`
+	Nic                   []Nic                                               `json:"nic"`
+	Ostypeid              int64                                               `json:"ostypeid"`
+	Password              string                                              `json:"password"`
+	Passwordenabled       bool                                                `json:"passwordenabled"`
+	Project               string                                              `json:"project"`
+	Projectid             string                                              `json:"projectid"`
+	Publicip              string                                              `json:"publicip"`
+	Publicipid            string                                              `json:"publicipid"`
+	Rootdeviceid          int64                                               `json:"rootdeviceid"`
+	Rootdevicetype        string                                              `json:"rootdevicetype"`
+	Securitygroup         []ResetSSHKeyForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                              `json:"serviceofferingid"`
+	Serviceofferingname   string                                              `json:"serviceofferingname"`
+	Servicestate          string                                              `json:"servicestate"`
+	State                 string                                              `json:"state"`
+	Templatedisplaytext   string                                              `json:"templatedisplaytext"`
+	Templateid            string                                              `json:"templateid"`
+	Templatename          string                                              `json:"templatename"`
+	Userid                string                                              `json:"userid"`
+	Username              string                                              `json:"username"`
+	Vgpu                  string                                              `json:"vgpu"`
+	Zoneid                string                                              `json:"zoneid"`
+	Zonename              string                                              `json:"zonename"`
+}
+
+type ResetSSHKeyForVirtualMachineResponseSecuritygroup struct {
+	Account             string                                                  `json:"account"`
+	Description         string                                                  `json:"description"`
+	Domain              string                                                  `json:"domain"`
+	Domainid            string                                                  `json:"domainid"`
+	Egressrule          []ResetSSHKeyForVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                                  `json:"id"`
+	Ingressrule         []ResetSSHKeyForVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                                  `json:"name"`
+	Project             string                                                  `json:"project"`
+	Projectid           string                                                  `json:"projectid"`
+	Tags                []Tags                                                  `json:"tags"`
+	Virtualmachinecount int                                                     `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                           `json:"virtualmachineids"`
+}
+
+type ResetSSHKeyForVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type ResetSSHKeyForVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SecurityGroupService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SecurityGroupService.go
index 0bf564f..1257504 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SecurityGroupService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SecurityGroupService.go
@@ -269,18 +269,7 @@
 	Ruleid            string `json:"ruleid"`
 	Securitygroupname string `json:"securitygroupname"`
 	Startport         int    `json:"startport"`
-	Tags              []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Tags              []Tags `json:"tags"`
 }
 
 type AuthorizeSecurityGroupIngressParams struct {
@@ -496,18 +485,7 @@
 	Ruleid            string `json:"ruleid"`
 	Securitygroupname string `json:"securitygroupname"`
 	Startport         int    `json:"startport"`
-	Tags              []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
+	Tags              []Tags `json:"tags"`
 }
 
 type CreateSecurityGroupParams struct {
@@ -606,74 +584,32 @@
 }
 
 type CreateSecurityGroupResponse struct {
-	Account     string `json:"account"`
-	Description string `json:"description"`
-	Domain      string `json:"domain"`
-	Domainid    string `json:"domainid"`
-	Egressrule  []struct {
-		Account           string `json:"account"`
-		Cidr              string `json:"cidr"`
-		Endport           int    `json:"endport"`
-		Icmpcode          int    `json:"icmpcode"`
-		Icmptype          int    `json:"icmptype"`
-		Protocol          string `json:"protocol"`
-		Ruleid            string `json:"ruleid"`
-		Securitygroupname string `json:"securitygroupname"`
-		Startport         int    `json:"startport"`
-		Tags              []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-	} `json:"egressrule"`
-	Id          string `json:"id"`
-	Ingressrule []struct {
-		Account           string `json:"account"`
-		Cidr              string `json:"cidr"`
-		Endport           int    `json:"endport"`
-		Icmpcode          int    `json:"icmpcode"`
-		Icmptype          int    `json:"icmptype"`
-		Protocol          string `json:"protocol"`
-		Ruleid            string `json:"ruleid"`
-		Securitygroupname string `json:"securitygroupname"`
-		Startport         int    `json:"startport"`
-		Tags              []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-	} `json:"ingressrule"`
-	Name      string `json:"name"`
-	Project   string `json:"project"`
-	Projectid string `json:"projectid"`
-	Tags      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Virtualmachinecount int           `json:"virtualmachinecount"`
-	Virtualmachineids   []interface{} `json:"virtualmachineids"`
+	Account             string                            `json:"account"`
+	Description         string                            `json:"description"`
+	Domain              string                            `json:"domain"`
+	Domainid            string                            `json:"domainid"`
+	Egressrule          []CreateSecurityGroupResponseRule `json:"egressrule"`
+	Id                  string                            `json:"id"`
+	Ingressrule         []CreateSecurityGroupResponseRule `json:"ingressrule"`
+	Name                string                            `json:"name"`
+	Project             string                            `json:"project"`
+	Projectid           string                            `json:"projectid"`
+	Tags                []Tags                            `json:"tags"`
+	Virtualmachinecount int                               `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                     `json:"virtualmachineids"`
+}
+
+type CreateSecurityGroupResponseRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
 }
 
 type DeleteSecurityGroupParams struct {
@@ -768,7 +704,26 @@
 
 type DeleteSecurityGroupResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteSecurityGroupResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteSecurityGroupResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListSecurityGroupsParams struct {
@@ -1036,74 +991,32 @@
 }
 
 type SecurityGroup struct {
-	Account     string `json:"account"`
-	Description string `json:"description"`
-	Domain      string `json:"domain"`
-	Domainid    string `json:"domainid"`
-	Egressrule  []struct {
-		Account           string `json:"account"`
-		Cidr              string `json:"cidr"`
-		Endport           int    `json:"endport"`
-		Icmpcode          int    `json:"icmpcode"`
-		Icmptype          int    `json:"icmptype"`
-		Protocol          string `json:"protocol"`
-		Ruleid            string `json:"ruleid"`
-		Securitygroupname string `json:"securitygroupname"`
-		Startport         int    `json:"startport"`
-		Tags              []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-	} `json:"egressrule"`
-	Id          string `json:"id"`
-	Ingressrule []struct {
-		Account           string `json:"account"`
-		Cidr              string `json:"cidr"`
-		Endport           int    `json:"endport"`
-		Icmpcode          int    `json:"icmpcode"`
-		Icmptype          int    `json:"icmptype"`
-		Protocol          string `json:"protocol"`
-		Ruleid            string `json:"ruleid"`
-		Securitygroupname string `json:"securitygroupname"`
-		Startport         int    `json:"startport"`
-		Tags              []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-	} `json:"ingressrule"`
-	Name      string `json:"name"`
-	Project   string `json:"project"`
-	Projectid string `json:"projectid"`
-	Tags      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Virtualmachinecount int           `json:"virtualmachinecount"`
-	Virtualmachineids   []interface{} `json:"virtualmachineids"`
+	Account             string              `json:"account"`
+	Description         string              `json:"description"`
+	Domain              string              `json:"domain"`
+	Domainid            string              `json:"domainid"`
+	Egressrule          []SecurityGroupRule `json:"egressrule"`
+	Id                  string              `json:"id"`
+	Ingressrule         []SecurityGroupRule `json:"ingressrule"`
+	Name                string              `json:"name"`
+	Project             string              `json:"project"`
+	Projectid           string              `json:"projectid"`
+	Tags                []Tags              `json:"tags"`
+	Virtualmachinecount int                 `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}       `json:"virtualmachineids"`
+}
+
+type SecurityGroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
 }
 
 type RevokeSecurityGroupEgressParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ServiceOfferingService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ServiceOfferingService.go
index 3c14758..1700f8d 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ServiceOfferingService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ServiceOfferingService.go
@@ -455,7 +455,26 @@
 
 type DeleteServiceOfferingResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteServiceOfferingResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteServiceOfferingResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListServiceOfferingsParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SnapshotService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SnapshotService.go
index 9fd3387..e3186e7 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SnapshotService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SnapshotService.go
@@ -36,9 +36,16 @@
 	if v, found := p.p["account"]; found {
 		u.Set("account", v.(string))
 	}
+	if v, found := p.p["asyncbackup"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("asyncbackup", vv)
+	}
 	if v, found := p.p["domainid"]; found {
 		u.Set("domainid", v.(string))
 	}
+	if v, found := p.p["locationtype"]; found {
+		u.Set("locationtype", v.(string))
+	}
 	if v, found := p.p["name"]; found {
 		u.Set("name", v.(string))
 	}
@@ -63,6 +70,14 @@
 	return
 }
 
+func (p *CreateSnapshotParams) SetAsyncbackup(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["asyncbackup"] = v
+	return
+}
+
 func (p *CreateSnapshotParams) SetDomainid(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -71,6 +86,14 @@
 	return
 }
 
+func (p *CreateSnapshotParams) SetLocationtype(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["locationtype"] = v
+	return
+}
+
 func (p *CreateSnapshotParams) SetName(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -148,36 +171,29 @@
 }
 
 type CreateSnapshotResponse struct {
-	JobID        string `json:"jobid"`
-	Account      string `json:"account"`
-	Created      string `json:"created"`
-	Domain       string `json:"domain"`
-	Domainid     string `json:"domainid"`
-	Id           string `json:"id"`
-	Intervaltype string `json:"intervaltype"`
-	Name         string `json:"name"`
-	Physicalsize int64  `json:"physicalsize"`
-	Project      string `json:"project"`
-	Projectid    string `json:"projectid"`
-	Revertable   bool   `json:"revertable"`
-	Snapshottype string `json:"snapshottype"`
-	State        string `json:"state"`
-	Tags         []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Volumeid   string `json:"volumeid"`
-	Volumename string `json:"volumename"`
-	Volumetype string `json:"volumetype"`
-	Zoneid     string `json:"zoneid"`
+	JobID         string `json:"jobid"`
+	Account       string `json:"account"`
+	Created       string `json:"created"`
+	Domain        string `json:"domain"`
+	Domainid      string `json:"domainid"`
+	Id            string `json:"id"`
+	Intervaltype  string `json:"intervaltype"`
+	Locationtype  string `json:"locationtype"`
+	Name          string `json:"name"`
+	Osdisplayname string `json:"osdisplayname"`
+	Ostypeid      string `json:"ostypeid"`
+	Physicalsize  int64  `json:"physicalsize"`
+	Project       string `json:"project"`
+	Projectid     string `json:"projectid"`
+	Revertable    bool   `json:"revertable"`
+	Snapshottype  string `json:"snapshottype"`
+	State         string `json:"state"`
+	Tags          []Tags `json:"tags"`
+	Virtualsize   int64  `json:"virtualsize"`
+	Volumeid      string `json:"volumeid"`
+	Volumename    string `json:"volumename"`
+	Volumetype    string `json:"volumetype"`
+	Zoneid        string `json:"zoneid"`
 }
 
 type CreateSnapshotPolicyParams struct {
@@ -560,7 +576,26 @@
 
 type DeleteSnapshotPoliciesResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteSnapshotPoliciesResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteSnapshotPoliciesResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DeleteVMSnapshotParams struct {
@@ -1093,35 +1128,28 @@
 }
 
 type Snapshot struct {
-	Account      string `json:"account"`
-	Created      string `json:"created"`
-	Domain       string `json:"domain"`
-	Domainid     string `json:"domainid"`
-	Id           string `json:"id"`
-	Intervaltype string `json:"intervaltype"`
-	Name         string `json:"name"`
-	Physicalsize int64  `json:"physicalsize"`
-	Project      string `json:"project"`
-	Projectid    string `json:"projectid"`
-	Revertable   bool   `json:"revertable"`
-	Snapshottype string `json:"snapshottype"`
-	State        string `json:"state"`
-	Tags         []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Volumeid   string `json:"volumeid"`
-	Volumename string `json:"volumename"`
-	Volumetype string `json:"volumetype"`
-	Zoneid     string `json:"zoneid"`
+	Account       string `json:"account"`
+	Created       string `json:"created"`
+	Domain        string `json:"domain"`
+	Domainid      string `json:"domainid"`
+	Id            string `json:"id"`
+	Intervaltype  string `json:"intervaltype"`
+	Locationtype  string `json:"locationtype"`
+	Name          string `json:"name"`
+	Osdisplayname string `json:"osdisplayname"`
+	Ostypeid      string `json:"ostypeid"`
+	Physicalsize  int64  `json:"physicalsize"`
+	Project       string `json:"project"`
+	Projectid     string `json:"projectid"`
+	Revertable    bool   `json:"revertable"`
+	Snapshottype  string `json:"snapshottype"`
+	State         string `json:"state"`
+	Tags          []Tags `json:"tags"`
+	Virtualsize   int64  `json:"virtualsize"`
+	Volumeid      string `json:"volumeid"`
+	Volumename    string `json:"volumename"`
+	Volumetype    string `json:"volumetype"`
+	Zoneid        string `json:"zoneid"`
 }
 
 type ListVMSnapshotParams struct {
@@ -1452,36 +1480,29 @@
 }
 
 type RevertSnapshotResponse struct {
-	JobID        string `json:"jobid"`
-	Account      string `json:"account"`
-	Created      string `json:"created"`
-	Domain       string `json:"domain"`
-	Domainid     string `json:"domainid"`
-	Id           string `json:"id"`
-	Intervaltype string `json:"intervaltype"`
-	Name         string `json:"name"`
-	Physicalsize int64  `json:"physicalsize"`
-	Project      string `json:"project"`
-	Projectid    string `json:"projectid"`
-	Revertable   bool   `json:"revertable"`
-	Snapshottype string `json:"snapshottype"`
-	State        string `json:"state"`
-	Tags         []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Volumeid   string `json:"volumeid"`
-	Volumename string `json:"volumename"`
-	Volumetype string `json:"volumetype"`
-	Zoneid     string `json:"zoneid"`
+	JobID         string `json:"jobid"`
+	Account       string `json:"account"`
+	Created       string `json:"created"`
+	Domain        string `json:"domain"`
+	Domainid      string `json:"domainid"`
+	Id            string `json:"id"`
+	Intervaltype  string `json:"intervaltype"`
+	Locationtype  string `json:"locationtype"`
+	Name          string `json:"name"`
+	Osdisplayname string `json:"osdisplayname"`
+	Ostypeid      string `json:"ostypeid"`
+	Physicalsize  int64  `json:"physicalsize"`
+	Project       string `json:"project"`
+	Projectid     string `json:"projectid"`
+	Revertable    bool   `json:"revertable"`
+	Snapshottype  string `json:"snapshottype"`
+	State         string `json:"state"`
+	Tags          []Tags `json:"tags"`
+	Virtualsize   int64  `json:"virtualsize"`
+	Volumeid      string `json:"volumeid"`
+	Volumename    string `json:"volumename"`
+	Volumetype    string `json:"volumetype"`
+	Zoneid        string `json:"zoneid"`
 }
 
 type RevertToVMSnapshotParams struct {
@@ -1552,173 +1573,111 @@
 }
 
 type RevertToVMSnapshotResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                    `json:"jobid"`
+	Account               string                                    `json:"account"`
+	Affinitygroup         []RevertToVMSnapshotResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                       `json:"cpunumber"`
+	Cpuspeed              int                                       `json:"cpuspeed"`
+	Cpuused               string                                    `json:"cpuused"`
+	Created               string                                    `json:"created"`
+	Details               map[string]string                         `json:"details"`
+	Diskioread            int64                                     `json:"diskioread"`
+	Diskiowrite           int64                                     `json:"diskiowrite"`
+	Diskkbsread           int64                                     `json:"diskkbsread"`
+	Diskkbswrite          int64                                     `json:"diskkbswrite"`
+	Diskofferingid        string                                    `json:"diskofferingid"`
+	Diskofferingname      string                                    `json:"diskofferingname"`
+	Displayname           string                                    `json:"displayname"`
+	Displayvm             bool                                      `json:"displayvm"`
+	Domain                string                                    `json:"domain"`
+	Domainid              string                                    `json:"domainid"`
+	Forvirtualnetwork     bool                                      `json:"forvirtualnetwork"`
+	Group                 string                                    `json:"group"`
+	Groupid               string                                    `json:"groupid"`
+	Guestosid             string                                    `json:"guestosid"`
+	Haenable              bool                                      `json:"haenable"`
+	Hostid                string                                    `json:"hostid"`
+	Hostname              string                                    `json:"hostname"`
+	Hypervisor            string                                    `json:"hypervisor"`
+	Id                    string                                    `json:"id"`
+	Instancename          string                                    `json:"instancename"`
+	Isdynamicallyscalable bool                                      `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                    `json:"isodisplaytext"`
+	Isoid                 string                                    `json:"isoid"`
+	Isoname               string                                    `json:"isoname"`
+	Keypair               string                                    `json:"keypair"`
+	Memory                int                                       `json:"memory"`
+	Memoryintfreekbs      int64                                     `json:"memoryintfreekbs"`
+	Memorykbs             int64                                     `json:"memorykbs"`
+	Memorytargetkbs       int64                                     `json:"memorytargetkbs"`
+	Name                  string                                    `json:"name"`
+	Networkkbsread        int64                                     `json:"networkkbsread"`
+	Networkkbswrite       int64                                     `json:"networkkbswrite"`
+	Nic                   []Nic                                     `json:"nic"`
+	Ostypeid              int64                                     `json:"ostypeid"`
+	Password              string                                    `json:"password"`
+	Passwordenabled       bool                                      `json:"passwordenabled"`
+	Project               string                                    `json:"project"`
+	Projectid             string                                    `json:"projectid"`
+	Publicip              string                                    `json:"publicip"`
+	Publicipid            string                                    `json:"publicipid"`
+	Rootdeviceid          int64                                     `json:"rootdeviceid"`
+	Rootdevicetype        string                                    `json:"rootdevicetype"`
+	Securitygroup         []RevertToVMSnapshotResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                    `json:"serviceofferingid"`
+	Serviceofferingname   string                                    `json:"serviceofferingname"`
+	Servicestate          string                                    `json:"servicestate"`
+	State                 string                                    `json:"state"`
+	Templatedisplaytext   string                                    `json:"templatedisplaytext"`
+	Templateid            string                                    `json:"templateid"`
+	Templatename          string                                    `json:"templatename"`
+	Userid                string                                    `json:"userid"`
+	Username              string                                    `json:"username"`
+	Vgpu                  string                                    `json:"vgpu"`
+	Zoneid                string                                    `json:"zoneid"`
+	Zonename              string                                    `json:"zonename"`
+}
+
+type RevertToVMSnapshotResponseSecuritygroup struct {
+	Account             string                                        `json:"account"`
+	Description         string                                        `json:"description"`
+	Domain              string                                        `json:"domain"`
+	Domainid            string                                        `json:"domainid"`
+	Egressrule          []RevertToVMSnapshotResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                        `json:"id"`
+	Ingressrule         []RevertToVMSnapshotResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                        `json:"name"`
+	Project             string                                        `json:"project"`
+	Projectid           string                                        `json:"projectid"`
+	Tags                []Tags                                        `json:"tags"`
+	Virtualmachinecount int                                           `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                 `json:"virtualmachineids"`
+}
+
+type RevertToVMSnapshotResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type RevertToVMSnapshotResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type UpdateSnapshotPolicyParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/StoragePoolService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/StoragePoolService.go
index e20e307..4938f14 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/StoragePoolService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/StoragePoolService.go
@@ -91,6 +91,7 @@
 
 type CancelStorageMaintenanceResponse struct {
 	JobID                string            `json:"jobid"`
+	Allocatediops        int64             `json:"allocatediops"`
 	Capacityiops         int64             `json:"capacityiops"`
 	Clusterid            string            `json:"clusterid"`
 	Clustername          string            `json:"clustername"`
@@ -106,6 +107,7 @@
 	Path                 string            `json:"path"`
 	Podid                string            `json:"podid"`
 	Podname              string            `json:"podname"`
+	Provider             string            `json:"provider"`
 	Scope                string            `json:"scope"`
 	State                string            `json:"state"`
 	Storagecapabilities  map[string]string `json:"storagecapabilities"`
@@ -185,6 +187,7 @@
 
 type EnableStorageMaintenanceResponse struct {
 	JobID                string            `json:"jobid"`
+	Allocatediops        int64             `json:"allocatediops"`
 	Capacityiops         int64             `json:"capacityiops"`
 	Clusterid            string            `json:"clusterid"`
 	Clustername          string            `json:"clustername"`
@@ -200,6 +203,7 @@
 	Path                 string            `json:"path"`
 	Podid                string            `json:"podid"`
 	Podname              string            `json:"podname"`
+	Provider             string            `json:"provider"`
 	Scope                string            `json:"scope"`
 	State                string            `json:"state"`
 	Storagecapabilities  map[string]string `json:"storagecapabilities"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/StratosphereSSPService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/StratosphereSSPService.go
index c89363b..8a4d491 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/StratosphereSSPService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/StratosphereSSPService.go
@@ -181,5 +181,24 @@
 
 type DeleteStratosphereSspResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteStratosphereSspResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteStratosphereSspResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SwiftService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SwiftService.go
index 24d2643..e3161d9 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SwiftService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SwiftService.go
@@ -104,15 +104,14 @@
 }
 
 type AddSwiftResponse struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
 
 type ListSwiftsParams struct {
@@ -239,13 +238,12 @@
 }
 
 type Swift struct {
-	Details      []interface{} `json:"details"`
-	Id           string        `json:"id"`
-	Name         string        `json:"name"`
-	Protocol     string        `json:"protocol"`
-	Providername string        `json:"providername"`
-	Scope        string        `json:"scope"`
-	Url          string        `json:"url"`
-	Zoneid       string        `json:"zoneid"`
-	Zonename     string        `json:"zonename"`
+	Id           string `json:"id"`
+	Name         string `json:"name"`
+	Protocol     string `json:"protocol"`
+	Providername string `json:"providername"`
+	Scope        string `json:"scope"`
+	Url          string `json:"url"`
+	Zoneid       string `json:"zoneid"`
+	Zonename     string `json:"zonename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemCapacityService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemCapacityService.go
index 0b17d45..686521c 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemCapacityService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemCapacityService.go
@@ -166,14 +166,16 @@
 }
 
 type Capacity struct {
-	Capacitytotal int64  `json:"capacitytotal"`
-	Capacityused  int64  `json:"capacityused"`
-	Clusterid     string `json:"clusterid"`
-	Clustername   string `json:"clustername"`
-	Percentused   string `json:"percentused"`
-	Podid         string `json:"podid"`
-	Podname       string `json:"podname"`
-	Type          int    `json:"type"`
-	Zoneid        string `json:"zoneid"`
-	Zonename      string `json:"zonename"`
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemVMService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemVMService.go
index 2c3cf73..4f1a651 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemVMService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/SystemVMService.go
@@ -99,34 +99,36 @@
 }
 
 type ChangeServiceForSystemVmResponse struct {
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
 
 type DestroySystemVmParams struct {
@@ -197,35 +199,36 @@
 }
 
 type DestroySystemVmResponse struct {
-	JobID                string `json:"jobid"`
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
 
 type ListSystemVmsParams struct {
@@ -475,34 +478,36 @@
 }
 
 type SystemVm struct {
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
 
 type MigrateSystemVmParams struct {
@@ -585,35 +590,36 @@
 }
 
 type MigrateSystemVmResponse struct {
-	JobID                string `json:"jobid"`
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
 
 type RebootSystemVmParams struct {
@@ -684,35 +690,36 @@
 }
 
 type RebootSystemVmResponse struct {
-	JobID                string `json:"jobid"`
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
 
 type ScaleSystemVmParams struct {
@@ -810,35 +817,36 @@
 }
 
 type ScaleSystemVmResponse struct {
-	JobID                string `json:"jobid"`
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
 
 type StartSystemVmParams struct {
@@ -909,35 +917,36 @@
 }
 
 type StartSystemVmResponse struct {
-	JobID                string `json:"jobid"`
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
 
 type StopSystemVmParams struct {
@@ -1020,33 +1029,34 @@
 }
 
 type StopSystemVmResponse struct {
-	JobID                string `json:"jobid"`
-	Activeviewersessions int    `json:"activeviewersessions"`
-	Created              string `json:"created"`
-	Dns1                 string `json:"dns1"`
-	Dns2                 string `json:"dns2"`
-	Gateway              string `json:"gateway"`
-	Hostid               string `json:"hostid"`
-	Hostname             string `json:"hostname"`
-	Hypervisor           string `json:"hypervisor"`
-	Id                   string `json:"id"`
-	Jobid                string `json:"jobid"`
-	Jobstatus            int    `json:"jobstatus"`
-	Linklocalip          string `json:"linklocalip"`
-	Linklocalmacaddress  string `json:"linklocalmacaddress"`
-	Linklocalnetmask     string `json:"linklocalnetmask"`
-	Name                 string `json:"name"`
-	Networkdomain        string `json:"networkdomain"`
-	Podid                string `json:"podid"`
-	Privateip            string `json:"privateip"`
-	Privatemacaddress    string `json:"privatemacaddress"`
-	Privatenetmask       string `json:"privatenetmask"`
-	Publicip             string `json:"publicip"`
-	Publicmacaddress     string `json:"publicmacaddress"`
-	Publicnetmask        string `json:"publicnetmask"`
-	State                string `json:"state"`
-	Systemvmtype         string `json:"systemvmtype"`
-	Templateid           string `json:"templateid"`
-	Zoneid               string `json:"zoneid"`
-	Zonename             string `json:"zonename"`
+	Activeviewersessions int      `json:"activeviewersessions"`
+	Created              string   `json:"created"`
+	Dns1                 string   `json:"dns1"`
+	Dns2                 string   `json:"dns2"`
+	Gateway              string   `json:"gateway"`
+	Guestvlan            string   `json:"guestvlan"`
+	Hostid               string   `json:"hostid"`
+	Hostname             string   `json:"hostname"`
+	Hypervisor           string   `json:"hypervisor"`
+	Id                   string   `json:"id"`
+	JobID                string   `json:"jobid"`
+	Jobstatus            int      `json:"jobstatus"`
+	Linklocalip          string   `json:"linklocalip"`
+	Linklocalmacaddress  string   `json:"linklocalmacaddress"`
+	Linklocalnetmask     string   `json:"linklocalnetmask"`
+	Name                 string   `json:"name"`
+	Networkdomain        string   `json:"networkdomain"`
+	Podid                string   `json:"podid"`
+	Privateip            string   `json:"privateip"`
+	Privatemacaddress    string   `json:"privatemacaddress"`
+	Privatenetmask       string   `json:"privatenetmask"`
+	Publicip             string   `json:"publicip"`
+	Publicmacaddress     string   `json:"publicmacaddress"`
+	Publicnetmask        string   `json:"publicnetmask"`
+	Publicvlan           []string `json:"publicvlan"`
+	State                string   `json:"state"`
+	Systemvmtype         string   `json:"systemvmtype"`
+	Templateid           string   `json:"templateid"`
+	Zoneid               string   `json:"zoneid"`
+	Zonename             string   `json:"zonename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/TemplateService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/TemplateService.go
index 3eef5ac..2c40bbd 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/TemplateService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/TemplateService.go
@@ -36,6 +36,10 @@
 	if v, found := p.p["destzoneid"]; found {
 		u.Set("destzoneid", v.(string))
 	}
+	if v, found := p.p["destzoneids"]; found {
+		vv := strings.Join(v.([]string), ",")
+		u.Set("destzoneids", vv)
+	}
 	if v, found := p.p["id"]; found {
 		u.Set("id", v.(string))
 	}
@@ -53,6 +57,14 @@
 	return
 }
 
+func (p *CopyTemplateParams) SetDestzoneids(v []string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["destzoneids"] = v
+	return
+}
+
 func (p *CopyTemplateParams) SetId(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -71,10 +83,9 @@
 
 // You should always use this function to get a new CopyTemplateParams instance,
 // as then you are sure you have configured all required params
-func (s *TemplateService) NewCopyTemplateParams(destzoneid string, id string) *CopyTemplateParams {
+func (s *TemplateService) NewCopyTemplateParams(id string) *CopyTemplateParams {
 	p := &CopyTemplateParams{}
 	p.p = make(map[string]interface{})
-	p.p["destzoneid"] = destzoneid
 	p.p["id"] = id
 	return p
 }
@@ -118,11 +129,14 @@
 	JobID                 string            `json:"jobid"`
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -139,7 +153,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -401,11 +417,14 @@
 	JobID                 string            `json:"jobid"`
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -422,7 +441,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -445,6 +466,10 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["forced"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("forced", vv)
+	}
 	if v, found := p.p["id"]; found {
 		u.Set("id", v.(string))
 	}
@@ -454,6 +479,14 @@
 	return u
 }
 
+func (p *DeleteTemplateParams) SetForced(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["forced"] = v
+	return
+}
+
 func (p *DeleteTemplateParams) SetId(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1067,6 +1100,9 @@
 		vv := strconv.Itoa(v.(int))
 		u.Set("pagesize", vv)
 	}
+	if v, found := p.p["parenttemplateid"]; found {
+		u.Set("parenttemplateid", v.(string))
+	}
 	if v, found := p.p["projectid"]; found {
 		u.Set("projectid", v.(string))
 	}
@@ -1179,6 +1215,14 @@
 	return
 }
 
+func (p *ListTemplatesParams) SetParenttemplateid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["parenttemplateid"] = v
+	return
+}
+
 func (p *ListTemplatesParams) SetProjectid(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1337,11 +1381,14 @@
 type Template struct {
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -1358,7 +1405,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -1445,11 +1494,14 @@
 type PrepareTemplateResponse struct {
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -1466,7 +1518,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -1506,6 +1560,10 @@
 			i++
 		}
 	}
+	if v, found := p.p["directdownload"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("directdownload", vv)
+	}
 	if v, found := p.p["displaytext"]; found {
 		u.Set("displaytext", v.(string))
 	}
@@ -1568,6 +1626,10 @@
 	if v, found := p.p["zoneid"]; found {
 		u.Set("zoneid", v.(string))
 	}
+	if v, found := p.p["zoneids"]; found {
+		vv := strings.Join(v.([]string), ",")
+		u.Set("zoneids", vv)
+	}
 	return u
 }
 
@@ -1603,6 +1665,14 @@
 	return
 }
 
+func (p *RegisterTemplateParams) SetDirectdownload(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["directdownload"] = v
+	return
+}
+
 func (p *RegisterTemplateParams) SetDisplaytext(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1747,9 +1817,17 @@
 	return
 }
 
+func (p *RegisterTemplateParams) SetZoneids(v []string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["zoneids"] = v
+	return
+}
+
 // You should always use this function to get a new RegisterTemplateParams instance,
 // as then you are sure you have configured all required params
-func (s *TemplateService) NewRegisterTemplateParams(displaytext string, format string, hypervisor string, name string, ostypeid string, url string, zoneid string) *RegisterTemplateParams {
+func (s *TemplateService) NewRegisterTemplateParams(displaytext string, format string, hypervisor string, name string, ostypeid string, url string) *RegisterTemplateParams {
 	p := &RegisterTemplateParams{}
 	p.p = make(map[string]interface{})
 	p.p["displaytext"] = displaytext
@@ -1758,7 +1836,6 @@
 	p.p["name"] = name
 	p.p["ostypeid"] = ostypeid
 	p.p["url"] = url
-	p.p["zoneid"] = zoneid
 	return p
 }
 
@@ -1785,11 +1862,14 @@
 type RegisterTemplate struct {
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -1806,7 +1886,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -1833,6 +1915,10 @@
 		vv := strconv.FormatBool(v.(bool))
 		u.Set("bootable", vv)
 	}
+	if v, found := p.p["cleanupdetails"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("cleanupdetails", vv)
+	}
 	if v, found := p.p["details"]; found {
 		i := 0
 		for k, vv := range v.(map[string]string) {
@@ -1886,6 +1972,14 @@
 	return
 }
 
+func (p *UpdateTemplateParams) SetCleanupdetails(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["cleanupdetails"] = v
+	return
+}
+
 func (p *UpdateTemplateParams) SetDetails(v map[string]string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -2001,11 +2095,14 @@
 type UpdateTemplateResponse struct {
 	Account               string            `json:"account"`
 	Accountid             string            `json:"accountid"`
+	Bits                  int               `json:"bits"`
 	Bootable              bool              `json:"bootable"`
 	Checksum              string            `json:"checksum"`
+	Childtemplates        []interface{}     `json:"childtemplates"`
 	Created               string            `json:"created"`
 	CrossZones            bool              `json:"crossZones"`
 	Details               map[string]string `json:"details"`
+	Directdownload        bool              `json:"directdownload"`
 	Displaytext           string            `json:"displaytext"`
 	Domain                string            `json:"domain"`
 	Domainid              string            `json:"domainid"`
@@ -2022,7 +2119,9 @@
 	Name                  string            `json:"name"`
 	Ostypeid              string            `json:"ostypeid"`
 	Ostypename            string            `json:"ostypename"`
+	Parenttemplateid      string            `json:"parenttemplateid"`
 	Passwordenabled       bool              `json:"passwordenabled"`
+	Physicalsize          int64             `json:"physicalsize"`
 	Project               string            `json:"project"`
 	Projectid             string            `json:"projectid"`
 	Removed               string            `json:"removed"`
@@ -2156,7 +2255,26 @@
 
 type UpdateTemplatePermissionsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *UpdateTemplatePermissionsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias UpdateTemplatePermissionsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type UpgradeRouterTemplateParams struct {
@@ -2261,6 +2379,6 @@
 }
 
 type UpgradeRouterTemplateResponse struct {
-	Jobid     string `json:"jobid"`
+	JobID     string `json:"jobid"`
 	Jobstatus int    `json:"jobstatus"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/UCSService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/UCSService.go
index ebceb93..c3e1ed4 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/UCSService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/UCSService.go
@@ -274,7 +274,26 @@
 
 type DeleteUcsManagerResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteUcsManagerResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteUcsManagerResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListUcsBladesParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/UsageService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/UsageService.go
index 94145f2..63a99ae 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/UsageService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/UsageService.go
@@ -329,7 +329,26 @@
 
 type DeleteTrafficMonitorResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteTrafficMonitorResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteTrafficMonitorResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DeleteTrafficTypeParams struct {
@@ -472,7 +491,26 @@
 
 type GenerateUsageRecordsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *GenerateUsageRecordsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias GenerateUsageRecordsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListTrafficMonitorsParams struct {
@@ -816,6 +854,10 @@
 	if v, found := p.p["enddate"]; found {
 		u.Set("enddate", v.(string))
 	}
+	if v, found := p.p["includetags"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("includetags", vv)
+	}
 	if v, found := p.p["keyword"]; found {
 		u.Set("keyword", v.(string))
 	}
@@ -875,6 +917,14 @@
 	return
 }
 
+func (p *ListUsageRecordsParams) SetIncludetags(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["includetags"] = v
+	return
+}
+
 func (p *ListUsageRecordsParams) SetKeyword(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1087,7 +1137,26 @@
 
 type RemoveRawUsageRecordsResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *RemoveRawUsageRecordsResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias RemoveRawUsageRecordsResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type UpdateTrafficTypeParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/UserService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/UserService.go
index e70000c..ba98845 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/UserService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/UserService.go
@@ -189,6 +189,7 @@
 	State               string `json:"state"`
 	Timezone            string `json:"timezone"`
 	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type DeleteUserParams struct {
@@ -240,7 +241,26 @@
 
 type DeleteUserResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteUserResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteUserResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DisableUserParams struct {
@@ -332,6 +352,7 @@
 	State               string `json:"state"`
 	Timezone            string `json:"timezone"`
 	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type EnableUserParams struct {
@@ -402,6 +423,7 @@
 	State               string `json:"state"`
 	Timezone            string `json:"timezone"`
 	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type GetUserParams struct {
@@ -472,6 +494,7 @@
 	State               string `json:"state"`
 	Timezone            string `json:"timezone"`
 	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type GetVirtualMachineUserDataParams struct {
@@ -746,6 +769,7 @@
 	State               string `json:"state"`
 	Timezone            string `json:"timezone"`
 	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type LockUserParams struct {
@@ -816,6 +840,7 @@
 	State               string `json:"state"`
 	Timezone            string `json:"timezone"`
 	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
 
 type RegisterUserKeysParams struct {
@@ -1030,4 +1055,5 @@
 	State               string `json:"state"`
 	Timezone            string `json:"timezone"`
 	Username            string `json:"username"`
+	Usersource          string `json:"usersource"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VLANService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VLANService.go
index 6f306e7..754b19e 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VLANService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VLANService.go
@@ -45,6 +45,10 @@
 	if v, found := p.p["endipv6"]; found {
 		u.Set("endipv6", v.(string))
 	}
+	if v, found := p.p["forsystemvms"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("forsystemvms", vv)
+	}
 	if v, found := p.p["forvirtualnetwork"]; found {
 		vv := strconv.FormatBool(v.(bool))
 		u.Set("forvirtualnetwork", vv)
@@ -120,6 +124,14 @@
 	return
 }
 
+func (p *CreateVlanIpRangeParams) SetForsystemvms(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["forsystemvms"] = v
+	return
+}
+
 func (p *CreateVlanIpRangeParams) SetForvirtualnetwork(v bool) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -254,6 +266,7 @@
 	Domainid          string `json:"domainid"`
 	Endip             string `json:"endip"`
 	Endipv6           string `json:"endipv6"`
+	Forsystemvms      bool   `json:"forsystemvms"`
 	Forvirtualnetwork bool   `json:"forvirtualnetwork"`
 	Gateway           string `json:"gateway"`
 	Id                string `json:"id"`
@@ -425,7 +438,26 @@
 
 type DeleteVlanIpRangeResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteVlanIpRangeResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteVlanIpRangeResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListDedicatedGuestVlanRangesParams struct {
@@ -851,6 +883,7 @@
 	Domainid          string `json:"domainid"`
 	Endip             string `json:"endip"`
 	Endipv6           string `json:"endipv6"`
+	Forsystemvms      bool   `json:"forsystemvms"`
 	Forvirtualnetwork bool   `json:"forvirtualnetwork"`
 	Gateway           string `json:"gateway"`
 	Id                string `json:"id"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VMGroupService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VMGroupService.go
index 58cabe5..83c3238 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VMGroupService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VMGroupService.go
@@ -164,7 +164,26 @@
 
 type DeleteInstanceGroupResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteInstanceGroupResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteInstanceGroupResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type ListInstanceGroupsParams struct {
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VPCService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VPCService.go
index 5583e44..149bb4f 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VPCService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VPCService.go
@@ -295,19 +295,8 @@
 	Project   string `json:"project"`
 	Projectid string `json:"projectid"`
 	State     string `json:"state"`
-	Tags      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Vpcid string `json:"vpcid"`
+	Tags      []Tags `json:"tags"`
+	Vpcid     string `json:"vpcid"`
 }
 
 type CreateVPCParams struct {
@@ -494,133 +483,127 @@
 }
 
 type CreateVPCResponse struct {
-	JobID                string `json:"jobid"`
-	Account              string `json:"account"`
-	Cidr                 string `json:"cidr"`
-	Created              string `json:"created"`
-	Displaytext          string `json:"displaytext"`
-	Distributedvpcrouter bool   `json:"distributedvpcrouter"`
-	Domain               string `json:"domain"`
-	Domainid             string `json:"domainid"`
-	Fordisplay           bool   `json:"fordisplay"`
-	Id                   string `json:"id"`
-	Name                 string `json:"name"`
-	Network              []struct {
-		Account                     string `json:"account"`
-		Aclid                       string `json:"aclid"`
-		Acltype                     string `json:"acltype"`
-		Broadcastdomaintype         string `json:"broadcastdomaintype"`
-		Broadcasturi                string `json:"broadcasturi"`
-		Canusefordeploy             bool   `json:"canusefordeploy"`
-		Cidr                        string `json:"cidr"`
-		Displaynetwork              bool   `json:"displaynetwork"`
-		Displaytext                 string `json:"displaytext"`
-		Dns1                        string `json:"dns1"`
-		Dns2                        string `json:"dns2"`
-		Domain                      string `json:"domain"`
-		Domainid                    string `json:"domainid"`
-		Gateway                     string `json:"gateway"`
-		Id                          string `json:"id"`
-		Ip6cidr                     string `json:"ip6cidr"`
-		Ip6gateway                  string `json:"ip6gateway"`
-		Isdefault                   bool   `json:"isdefault"`
-		Ispersistent                bool   `json:"ispersistent"`
-		Issystem                    bool   `json:"issystem"`
-		Name                        string `json:"name"`
-		Netmask                     string `json:"netmask"`
-		Networkcidr                 string `json:"networkcidr"`
-		Networkdomain               string `json:"networkdomain"`
-		Networkofferingavailability string `json:"networkofferingavailability"`
-		Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-		Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-		Networkofferingid           string `json:"networkofferingid"`
-		Networkofferingname         string `json:"networkofferingname"`
-		Physicalnetworkid           string `json:"physicalnetworkid"`
-		Project                     string `json:"project"`
-		Projectid                   string `json:"projectid"`
-		Related                     string `json:"related"`
-		Reservediprange             string `json:"reservediprange"`
-		Restartrequired             bool   `json:"restartrequired"`
-		Service                     []struct {
-			Capability []struct {
-				Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-				Name                       string `json:"name"`
-				Value                      string `json:"value"`
-			} `json:"capability"`
-			Name     string `json:"name"`
-			Provider []struct {
-				Canenableindividualservice   bool     `json:"canenableindividualservice"`
-				Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-				Id                           string   `json:"id"`
-				Name                         string   `json:"name"`
-				Physicalnetworkid            string   `json:"physicalnetworkid"`
-				Servicelist                  []string `json:"servicelist"`
-				State                        string   `json:"state"`
-			} `json:"provider"`
-		} `json:"service"`
-		Specifyipranges  bool   `json:"specifyipranges"`
-		State            string `json:"state"`
-		Strechedl2subnet bool   `json:"strechedl2subnet"`
-		Subdomainaccess  bool   `json:"subdomainaccess"`
-		Tags             []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Traffictype       string        `json:"traffictype"`
-		Type              string        `json:"type"`
-		Vlan              string        `json:"vlan"`
-		Vpcid             string        `json:"vpcid"`
-		Zoneid            string        `json:"zoneid"`
-		Zonename          string        `json:"zonename"`
-		Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-	} `json:"network"`
-	Networkdomain      string `json:"networkdomain"`
-	Project            string `json:"project"`
-	Projectid          string `json:"projectid"`
-	Redundantvpcrouter bool   `json:"redundantvpcrouter"`
-	Regionlevelvpc     bool   `json:"regionlevelvpc"`
-	Restartrequired    bool   `json:"restartrequired"`
-	Service            []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	State string `json:"state"`
-	Tags  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Vpcofferingid string `json:"vpcofferingid"`
-	Zoneid        string `json:"zoneid"`
-	Zonename      string `json:"zonename"`
+	JobID                string                     `json:"jobid"`
+	Account              string                     `json:"account"`
+	Cidr                 string                     `json:"cidr"`
+	Created              string                     `json:"created"`
+	Displaytext          string                     `json:"displaytext"`
+	Distributedvpcrouter bool                       `json:"distributedvpcrouter"`
+	Domain               string                     `json:"domain"`
+	Domainid             string                     `json:"domainid"`
+	Fordisplay           bool                       `json:"fordisplay"`
+	Id                   string                     `json:"id"`
+	Name                 string                     `json:"name"`
+	Network              []CreateVPCResponseNetwork `json:"network"`
+	Networkdomain        string                     `json:"networkdomain"`
+	Project              string                     `json:"project"`
+	Projectid            string                     `json:"projectid"`
+	Redundantvpcrouter   bool                       `json:"redundantvpcrouter"`
+	Regionlevelvpc       bool                       `json:"regionlevelvpc"`
+	Restartrequired      bool                       `json:"restartrequired"`
+	Service              []CreateVPCResponseService `json:"service"`
+	State                string                     `json:"state"`
+	Tags                 []Tags                     `json:"tags"`
+	Vpcofferingid        string                     `json:"vpcofferingid"`
+	Zoneid               string                     `json:"zoneid"`
+	Zonename             string                     `json:"zonename"`
+}
+
+type CreateVPCResponseService struct {
+	Capability []CreateVPCResponseServiceCapability `json:"capability"`
+	Name       string                               `json:"name"`
+	Provider   []CreateVPCResponseServiceProvider   `json:"provider"`
+}
+
+type CreateVPCResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type CreateVPCResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
+}
+
+type CreateVPCResponseNetwork struct {
+	Account                     string                            `json:"account"`
+	Aclid                       string                            `json:"aclid"`
+	Acltype                     string                            `json:"acltype"`
+	Broadcastdomaintype         string                            `json:"broadcastdomaintype"`
+	Broadcasturi                string                            `json:"broadcasturi"`
+	Canusefordeploy             bool                              `json:"canusefordeploy"`
+	Cidr                        string                            `json:"cidr"`
+	Displaynetwork              bool                              `json:"displaynetwork"`
+	Displaytext                 string                            `json:"displaytext"`
+	Dns1                        string                            `json:"dns1"`
+	Dns2                        string                            `json:"dns2"`
+	Domain                      string                            `json:"domain"`
+	Domainid                    string                            `json:"domainid"`
+	Externalid                  string                            `json:"externalid"`
+	Gateway                     string                            `json:"gateway"`
+	Id                          string                            `json:"id"`
+	Ip6cidr                     string                            `json:"ip6cidr"`
+	Ip6gateway                  string                            `json:"ip6gateway"`
+	Isdefault                   bool                              `json:"isdefault"`
+	Ispersistent                bool                              `json:"ispersistent"`
+	Issystem                    bool                              `json:"issystem"`
+	Name                        string                            `json:"name"`
+	Netmask                     string                            `json:"netmask"`
+	Networkcidr                 string                            `json:"networkcidr"`
+	Networkdomain               string                            `json:"networkdomain"`
+	Networkofferingavailability string                            `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                              `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                            `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                            `json:"networkofferingid"`
+	Networkofferingname         string                            `json:"networkofferingname"`
+	Physicalnetworkid           string                            `json:"physicalnetworkid"`
+	Project                     string                            `json:"project"`
+	Projectid                   string                            `json:"projectid"`
+	Redundantrouter             bool                              `json:"redundantrouter"`
+	Related                     string                            `json:"related"`
+	Reservediprange             string                            `json:"reservediprange"`
+	Restartrequired             bool                              `json:"restartrequired"`
+	Service                     []CreateVPCResponseNetworkService `json:"service"`
+	Specifyipranges             bool                              `json:"specifyipranges"`
+	State                       string                            `json:"state"`
+	Strechedl2subnet            bool                              `json:"strechedl2subnet"`
+	Subdomainaccess             bool                              `json:"subdomainaccess"`
+	Tags                        []Tags                            `json:"tags"`
+	Traffictype                 string                            `json:"traffictype"`
+	Type                        string                            `json:"type"`
+	Vlan                        string                            `json:"vlan"`
+	Vpcid                       string                            `json:"vpcid"`
+	Zoneid                      string                            `json:"zoneid"`
+	Zonename                    string                            `json:"zonename"`
+	Zonesnetworkspans           []interface{}                     `json:"zonesnetworkspans"`
+}
+
+type CreateVPCResponseNetworkService struct {
+	Capability []CreateVPCResponseNetworkServiceCapability `json:"capability"`
+	Name       string                                      `json:"name"`
+	Provider   []CreateVPCResponseNetworkServiceProvider   `json:"provider"`
+}
+
+type CreateVPCResponseNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type CreateVPCResponseNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type CreateVPCOfferingParams struct {
@@ -759,32 +742,38 @@
 }
 
 type CreateVPCOfferingResponse struct {
-	JobID                string `json:"jobid"`
-	Created              string `json:"created"`
-	Displaytext          string `json:"displaytext"`
-	Distributedvpcrouter bool   `json:"distributedvpcrouter"`
-	Id                   string `json:"id"`
-	Isdefault            bool   `json:"isdefault"`
-	Name                 string `json:"name"`
-	Service              []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	State                  string `json:"state"`
-	SupportsregionLevelvpc bool   `json:"supportsregionLevelvpc"`
+	JobID                  string                             `json:"jobid"`
+	Created                string                             `json:"created"`
+	Displaytext            string                             `json:"displaytext"`
+	Distributedvpcrouter   bool                               `json:"distributedvpcrouter"`
+	Id                     string                             `json:"id"`
+	Isdefault              bool                               `json:"isdefault"`
+	Name                   string                             `json:"name"`
+	Service                []CreateVPCOfferingResponseService `json:"service"`
+	State                  string                             `json:"state"`
+	SupportsregionLevelvpc bool                               `json:"supportsregionLevelvpc"`
+}
+
+type CreateVPCOfferingResponseService struct {
+	Capability []CreateVPCOfferingResponseServiceCapability `json:"capability"`
+	Name       string                                       `json:"name"`
+	Provider   []CreateVPCOfferingResponseServiceProvider   `json:"provider"`
+}
+
+type CreateVPCOfferingResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type CreateVPCOfferingResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type DeletePrivateGatewayParams struct {
@@ -1523,19 +1512,8 @@
 	Project   string `json:"project"`
 	Projectid string `json:"projectid"`
 	State     string `json:"state"`
-	Tags      []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Vpcid string `json:"vpcid"`
+	Tags      []Tags `json:"tags"`
+	Vpcid     string `json:"vpcid"`
 }
 
 type ListVPCOfferingsParams struct {
@@ -1765,31 +1743,37 @@
 }
 
 type VPCOffering struct {
-	Created              string `json:"created"`
-	Displaytext          string `json:"displaytext"`
-	Distributedvpcrouter bool   `json:"distributedvpcrouter"`
-	Id                   string `json:"id"`
-	Isdefault            bool   `json:"isdefault"`
-	Name                 string `json:"name"`
-	Service              []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	State                  string `json:"state"`
-	SupportsregionLevelvpc bool   `json:"supportsregionLevelvpc"`
+	Created                string               `json:"created"`
+	Displaytext            string               `json:"displaytext"`
+	Distributedvpcrouter   bool                 `json:"distributedvpcrouter"`
+	Id                     string               `json:"id"`
+	Isdefault              bool                 `json:"isdefault"`
+	Name                   string               `json:"name"`
+	Service                []VPCOfferingService `json:"service"`
+	State                  string               `json:"state"`
+	SupportsregionLevelvpc bool                 `json:"supportsregionLevelvpc"`
+}
+
+type VPCOfferingService struct {
+	Capability []VPCOfferingServiceCapability `json:"capability"`
+	Name       string                         `json:"name"`
+	Provider   []VPCOfferingServiceProvider   `json:"provider"`
+}
+
+type VPCOfferingServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type VPCOfferingServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type ListVPCsParams struct {
@@ -2137,132 +2121,126 @@
 }
 
 type VPC struct {
-	Account              string `json:"account"`
-	Cidr                 string `json:"cidr"`
-	Created              string `json:"created"`
-	Displaytext          string `json:"displaytext"`
-	Distributedvpcrouter bool   `json:"distributedvpcrouter"`
-	Domain               string `json:"domain"`
-	Domainid             string `json:"domainid"`
-	Fordisplay           bool   `json:"fordisplay"`
-	Id                   string `json:"id"`
-	Name                 string `json:"name"`
-	Network              []struct {
-		Account                     string `json:"account"`
-		Aclid                       string `json:"aclid"`
-		Acltype                     string `json:"acltype"`
-		Broadcastdomaintype         string `json:"broadcastdomaintype"`
-		Broadcasturi                string `json:"broadcasturi"`
-		Canusefordeploy             bool   `json:"canusefordeploy"`
-		Cidr                        string `json:"cidr"`
-		Displaynetwork              bool   `json:"displaynetwork"`
-		Displaytext                 string `json:"displaytext"`
-		Dns1                        string `json:"dns1"`
-		Dns2                        string `json:"dns2"`
-		Domain                      string `json:"domain"`
-		Domainid                    string `json:"domainid"`
-		Gateway                     string `json:"gateway"`
-		Id                          string `json:"id"`
-		Ip6cidr                     string `json:"ip6cidr"`
-		Ip6gateway                  string `json:"ip6gateway"`
-		Isdefault                   bool   `json:"isdefault"`
-		Ispersistent                bool   `json:"ispersistent"`
-		Issystem                    bool   `json:"issystem"`
-		Name                        string `json:"name"`
-		Netmask                     string `json:"netmask"`
-		Networkcidr                 string `json:"networkcidr"`
-		Networkdomain               string `json:"networkdomain"`
-		Networkofferingavailability string `json:"networkofferingavailability"`
-		Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-		Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-		Networkofferingid           string `json:"networkofferingid"`
-		Networkofferingname         string `json:"networkofferingname"`
-		Physicalnetworkid           string `json:"physicalnetworkid"`
-		Project                     string `json:"project"`
-		Projectid                   string `json:"projectid"`
-		Related                     string `json:"related"`
-		Reservediprange             string `json:"reservediprange"`
-		Restartrequired             bool   `json:"restartrequired"`
-		Service                     []struct {
-			Capability []struct {
-				Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-				Name                       string `json:"name"`
-				Value                      string `json:"value"`
-			} `json:"capability"`
-			Name     string `json:"name"`
-			Provider []struct {
-				Canenableindividualservice   bool     `json:"canenableindividualservice"`
-				Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-				Id                           string   `json:"id"`
-				Name                         string   `json:"name"`
-				Physicalnetworkid            string   `json:"physicalnetworkid"`
-				Servicelist                  []string `json:"servicelist"`
-				State                        string   `json:"state"`
-			} `json:"provider"`
-		} `json:"service"`
-		Specifyipranges  bool   `json:"specifyipranges"`
-		State            string `json:"state"`
-		Strechedl2subnet bool   `json:"strechedl2subnet"`
-		Subdomainaccess  bool   `json:"subdomainaccess"`
-		Tags             []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Traffictype       string        `json:"traffictype"`
-		Type              string        `json:"type"`
-		Vlan              string        `json:"vlan"`
-		Vpcid             string        `json:"vpcid"`
-		Zoneid            string        `json:"zoneid"`
-		Zonename          string        `json:"zonename"`
-		Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-	} `json:"network"`
-	Networkdomain      string `json:"networkdomain"`
-	Project            string `json:"project"`
-	Projectid          string `json:"projectid"`
-	Redundantvpcrouter bool   `json:"redundantvpcrouter"`
-	Regionlevelvpc     bool   `json:"regionlevelvpc"`
-	Restartrequired    bool   `json:"restartrequired"`
-	Service            []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	State string `json:"state"`
-	Tags  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Vpcofferingid string `json:"vpcofferingid"`
-	Zoneid        string `json:"zoneid"`
-	Zonename      string `json:"zonename"`
+	Account              string               `json:"account"`
+	Cidr                 string               `json:"cidr"`
+	Created              string               `json:"created"`
+	Displaytext          string               `json:"displaytext"`
+	Distributedvpcrouter bool                 `json:"distributedvpcrouter"`
+	Domain               string               `json:"domain"`
+	Domainid             string               `json:"domainid"`
+	Fordisplay           bool                 `json:"fordisplay"`
+	Id                   string               `json:"id"`
+	Name                 string               `json:"name"`
+	Network              []VPCNetwork         `json:"network"`
+	Networkdomain        string               `json:"networkdomain"`
+	Project              string               `json:"project"`
+	Projectid            string               `json:"projectid"`
+	Redundantvpcrouter   bool                 `json:"redundantvpcrouter"`
+	Regionlevelvpc       bool                 `json:"regionlevelvpc"`
+	Restartrequired      bool                 `json:"restartrequired"`
+	Service              []VPCServiceInternal `json:"service"`
+	State                string               `json:"state"`
+	Tags                 []Tags               `json:"tags"`
+	Vpcofferingid        string               `json:"vpcofferingid"`
+	Zoneid               string               `json:"zoneid"`
+	Zonename             string               `json:"zonename"`
+}
+
+type VPCServiceInternal struct {
+	Capability []VPCServiceInternalCapability `json:"capability"`
+	Name       string                         `json:"name"`
+	Provider   []VPCServiceInternalProvider   `json:"provider"`
+}
+
+type VPCServiceInternalProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type VPCServiceInternalCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
+}
+
+type VPCNetwork struct {
+	Account                     string              `json:"account"`
+	Aclid                       string              `json:"aclid"`
+	Acltype                     string              `json:"acltype"`
+	Broadcastdomaintype         string              `json:"broadcastdomaintype"`
+	Broadcasturi                string              `json:"broadcasturi"`
+	Canusefordeploy             bool                `json:"canusefordeploy"`
+	Cidr                        string              `json:"cidr"`
+	Displaynetwork              bool                `json:"displaynetwork"`
+	Displaytext                 string              `json:"displaytext"`
+	Dns1                        string              `json:"dns1"`
+	Dns2                        string              `json:"dns2"`
+	Domain                      string              `json:"domain"`
+	Domainid                    string              `json:"domainid"`
+	Externalid                  string              `json:"externalid"`
+	Gateway                     string              `json:"gateway"`
+	Id                          string              `json:"id"`
+	Ip6cidr                     string              `json:"ip6cidr"`
+	Ip6gateway                  string              `json:"ip6gateway"`
+	Isdefault                   bool                `json:"isdefault"`
+	Ispersistent                bool                `json:"ispersistent"`
+	Issystem                    bool                `json:"issystem"`
+	Name                        string              `json:"name"`
+	Netmask                     string              `json:"netmask"`
+	Networkcidr                 string              `json:"networkcidr"`
+	Networkdomain               string              `json:"networkdomain"`
+	Networkofferingavailability string              `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string              `json:"networkofferingdisplaytext"`
+	Networkofferingid           string              `json:"networkofferingid"`
+	Networkofferingname         string              `json:"networkofferingname"`
+	Physicalnetworkid           string              `json:"physicalnetworkid"`
+	Project                     string              `json:"project"`
+	Projectid                   string              `json:"projectid"`
+	Redundantrouter             bool                `json:"redundantrouter"`
+	Related                     string              `json:"related"`
+	Reservediprange             string              `json:"reservediprange"`
+	Restartrequired             bool                `json:"restartrequired"`
+	Service                     []VPCNetworkService `json:"service"`
+	Specifyipranges             bool                `json:"specifyipranges"`
+	State                       string              `json:"state"`
+	Strechedl2subnet            bool                `json:"strechedl2subnet"`
+	Subdomainaccess             bool                `json:"subdomainaccess"`
+	Tags                        []Tags              `json:"tags"`
+	Traffictype                 string              `json:"traffictype"`
+	Type                        string              `json:"type"`
+	Vlan                        string              `json:"vlan"`
+	Vpcid                       string              `json:"vpcid"`
+	Zoneid                      string              `json:"zoneid"`
+	Zonename                    string              `json:"zonename"`
+	Zonesnetworkspans           []interface{}       `json:"zonesnetworkspans"`
+}
+
+type VPCNetworkService struct {
+	Capability []VPCNetworkServiceCapability `json:"capability"`
+	Name       string                        `json:"name"`
+	Provider   []VPCNetworkServiceProvider   `json:"provider"`
+}
+
+type VPCNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type VPCNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type RestartVPCParams struct {
@@ -2357,133 +2335,127 @@
 }
 
 type RestartVPCResponse struct {
-	JobID                string `json:"jobid"`
-	Account              string `json:"account"`
-	Cidr                 string `json:"cidr"`
-	Created              string `json:"created"`
-	Displaytext          string `json:"displaytext"`
-	Distributedvpcrouter bool   `json:"distributedvpcrouter"`
-	Domain               string `json:"domain"`
-	Domainid             string `json:"domainid"`
-	Fordisplay           bool   `json:"fordisplay"`
-	Id                   string `json:"id"`
-	Name                 string `json:"name"`
-	Network              []struct {
-		Account                     string `json:"account"`
-		Aclid                       string `json:"aclid"`
-		Acltype                     string `json:"acltype"`
-		Broadcastdomaintype         string `json:"broadcastdomaintype"`
-		Broadcasturi                string `json:"broadcasturi"`
-		Canusefordeploy             bool   `json:"canusefordeploy"`
-		Cidr                        string `json:"cidr"`
-		Displaynetwork              bool   `json:"displaynetwork"`
-		Displaytext                 string `json:"displaytext"`
-		Dns1                        string `json:"dns1"`
-		Dns2                        string `json:"dns2"`
-		Domain                      string `json:"domain"`
-		Domainid                    string `json:"domainid"`
-		Gateway                     string `json:"gateway"`
-		Id                          string `json:"id"`
-		Ip6cidr                     string `json:"ip6cidr"`
-		Ip6gateway                  string `json:"ip6gateway"`
-		Isdefault                   bool   `json:"isdefault"`
-		Ispersistent                bool   `json:"ispersistent"`
-		Issystem                    bool   `json:"issystem"`
-		Name                        string `json:"name"`
-		Netmask                     string `json:"netmask"`
-		Networkcidr                 string `json:"networkcidr"`
-		Networkdomain               string `json:"networkdomain"`
-		Networkofferingavailability string `json:"networkofferingavailability"`
-		Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-		Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-		Networkofferingid           string `json:"networkofferingid"`
-		Networkofferingname         string `json:"networkofferingname"`
-		Physicalnetworkid           string `json:"physicalnetworkid"`
-		Project                     string `json:"project"`
-		Projectid                   string `json:"projectid"`
-		Related                     string `json:"related"`
-		Reservediprange             string `json:"reservediprange"`
-		Restartrequired             bool   `json:"restartrequired"`
-		Service                     []struct {
-			Capability []struct {
-				Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-				Name                       string `json:"name"`
-				Value                      string `json:"value"`
-			} `json:"capability"`
-			Name     string `json:"name"`
-			Provider []struct {
-				Canenableindividualservice   bool     `json:"canenableindividualservice"`
-				Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-				Id                           string   `json:"id"`
-				Name                         string   `json:"name"`
-				Physicalnetworkid            string   `json:"physicalnetworkid"`
-				Servicelist                  []string `json:"servicelist"`
-				State                        string   `json:"state"`
-			} `json:"provider"`
-		} `json:"service"`
-		Specifyipranges  bool   `json:"specifyipranges"`
-		State            string `json:"state"`
-		Strechedl2subnet bool   `json:"strechedl2subnet"`
-		Subdomainaccess  bool   `json:"subdomainaccess"`
-		Tags             []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Traffictype       string        `json:"traffictype"`
-		Type              string        `json:"type"`
-		Vlan              string        `json:"vlan"`
-		Vpcid             string        `json:"vpcid"`
-		Zoneid            string        `json:"zoneid"`
-		Zonename          string        `json:"zonename"`
-		Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-	} `json:"network"`
-	Networkdomain      string `json:"networkdomain"`
-	Project            string `json:"project"`
-	Projectid          string `json:"projectid"`
-	Redundantvpcrouter bool   `json:"redundantvpcrouter"`
-	Regionlevelvpc     bool   `json:"regionlevelvpc"`
-	Restartrequired    bool   `json:"restartrequired"`
-	Service            []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	State string `json:"state"`
-	Tags  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Vpcofferingid string `json:"vpcofferingid"`
-	Zoneid        string `json:"zoneid"`
-	Zonename      string `json:"zonename"`
+	JobID                string                      `json:"jobid"`
+	Account              string                      `json:"account"`
+	Cidr                 string                      `json:"cidr"`
+	Created              string                      `json:"created"`
+	Displaytext          string                      `json:"displaytext"`
+	Distributedvpcrouter bool                        `json:"distributedvpcrouter"`
+	Domain               string                      `json:"domain"`
+	Domainid             string                      `json:"domainid"`
+	Fordisplay           bool                        `json:"fordisplay"`
+	Id                   string                      `json:"id"`
+	Name                 string                      `json:"name"`
+	Network              []RestartVPCResponseNetwork `json:"network"`
+	Networkdomain        string                      `json:"networkdomain"`
+	Project              string                      `json:"project"`
+	Projectid            string                      `json:"projectid"`
+	Redundantvpcrouter   bool                        `json:"redundantvpcrouter"`
+	Regionlevelvpc       bool                        `json:"regionlevelvpc"`
+	Restartrequired      bool                        `json:"restartrequired"`
+	Service              []RestartVPCResponseService `json:"service"`
+	State                string                      `json:"state"`
+	Tags                 []Tags                      `json:"tags"`
+	Vpcofferingid        string                      `json:"vpcofferingid"`
+	Zoneid               string                      `json:"zoneid"`
+	Zonename             string                      `json:"zonename"`
+}
+
+type RestartVPCResponseService struct {
+	Capability []RestartVPCResponseServiceCapability `json:"capability"`
+	Name       string                                `json:"name"`
+	Provider   []RestartVPCResponseServiceProvider   `json:"provider"`
+}
+
+type RestartVPCResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type RestartVPCResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
+}
+
+type RestartVPCResponseNetwork struct {
+	Account                     string                             `json:"account"`
+	Aclid                       string                             `json:"aclid"`
+	Acltype                     string                             `json:"acltype"`
+	Broadcastdomaintype         string                             `json:"broadcastdomaintype"`
+	Broadcasturi                string                             `json:"broadcasturi"`
+	Canusefordeploy             bool                               `json:"canusefordeploy"`
+	Cidr                        string                             `json:"cidr"`
+	Displaynetwork              bool                               `json:"displaynetwork"`
+	Displaytext                 string                             `json:"displaytext"`
+	Dns1                        string                             `json:"dns1"`
+	Dns2                        string                             `json:"dns2"`
+	Domain                      string                             `json:"domain"`
+	Domainid                    string                             `json:"domainid"`
+	Externalid                  string                             `json:"externalid"`
+	Gateway                     string                             `json:"gateway"`
+	Id                          string                             `json:"id"`
+	Ip6cidr                     string                             `json:"ip6cidr"`
+	Ip6gateway                  string                             `json:"ip6gateway"`
+	Isdefault                   bool                               `json:"isdefault"`
+	Ispersistent                bool                               `json:"ispersistent"`
+	Issystem                    bool                               `json:"issystem"`
+	Name                        string                             `json:"name"`
+	Netmask                     string                             `json:"netmask"`
+	Networkcidr                 string                             `json:"networkcidr"`
+	Networkdomain               string                             `json:"networkdomain"`
+	Networkofferingavailability string                             `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                               `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                             `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                             `json:"networkofferingid"`
+	Networkofferingname         string                             `json:"networkofferingname"`
+	Physicalnetworkid           string                             `json:"physicalnetworkid"`
+	Project                     string                             `json:"project"`
+	Projectid                   string                             `json:"projectid"`
+	Redundantrouter             bool                               `json:"redundantrouter"`
+	Related                     string                             `json:"related"`
+	Reservediprange             string                             `json:"reservediprange"`
+	Restartrequired             bool                               `json:"restartrequired"`
+	Service                     []RestartVPCResponseNetworkService `json:"service"`
+	Specifyipranges             bool                               `json:"specifyipranges"`
+	State                       string                             `json:"state"`
+	Strechedl2subnet            bool                               `json:"strechedl2subnet"`
+	Subdomainaccess             bool                               `json:"subdomainaccess"`
+	Tags                        []Tags                             `json:"tags"`
+	Traffictype                 string                             `json:"traffictype"`
+	Type                        string                             `json:"type"`
+	Vlan                        string                             `json:"vlan"`
+	Vpcid                       string                             `json:"vpcid"`
+	Zoneid                      string                             `json:"zoneid"`
+	Zonename                    string                             `json:"zonename"`
+	Zonesnetworkspans           []interface{}                      `json:"zonesnetworkspans"`
+}
+
+type RestartVPCResponseNetworkService struct {
+	Capability []RestartVPCResponseNetworkServiceCapability `json:"capability"`
+	Name       string                                       `json:"name"`
+	Provider   []RestartVPCResponseNetworkServiceProvider   `json:"provider"`
+}
+
+type RestartVPCResponseNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type RestartVPCResponseNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type UpdateVPCParams struct {
@@ -2599,133 +2571,127 @@
 }
 
 type UpdateVPCResponse struct {
-	JobID                string `json:"jobid"`
-	Account              string `json:"account"`
-	Cidr                 string `json:"cidr"`
-	Created              string `json:"created"`
-	Displaytext          string `json:"displaytext"`
-	Distributedvpcrouter bool   `json:"distributedvpcrouter"`
-	Domain               string `json:"domain"`
-	Domainid             string `json:"domainid"`
-	Fordisplay           bool   `json:"fordisplay"`
-	Id                   string `json:"id"`
-	Name                 string `json:"name"`
-	Network              []struct {
-		Account                     string `json:"account"`
-		Aclid                       string `json:"aclid"`
-		Acltype                     string `json:"acltype"`
-		Broadcastdomaintype         string `json:"broadcastdomaintype"`
-		Broadcasturi                string `json:"broadcasturi"`
-		Canusefordeploy             bool   `json:"canusefordeploy"`
-		Cidr                        string `json:"cidr"`
-		Displaynetwork              bool   `json:"displaynetwork"`
-		Displaytext                 string `json:"displaytext"`
-		Dns1                        string `json:"dns1"`
-		Dns2                        string `json:"dns2"`
-		Domain                      string `json:"domain"`
-		Domainid                    string `json:"domainid"`
-		Gateway                     string `json:"gateway"`
-		Id                          string `json:"id"`
-		Ip6cidr                     string `json:"ip6cidr"`
-		Ip6gateway                  string `json:"ip6gateway"`
-		Isdefault                   bool   `json:"isdefault"`
-		Ispersistent                bool   `json:"ispersistent"`
-		Issystem                    bool   `json:"issystem"`
-		Name                        string `json:"name"`
-		Netmask                     string `json:"netmask"`
-		Networkcidr                 string `json:"networkcidr"`
-		Networkdomain               string `json:"networkdomain"`
-		Networkofferingavailability string `json:"networkofferingavailability"`
-		Networkofferingconservemode bool   `json:"networkofferingconservemode"`
-		Networkofferingdisplaytext  string `json:"networkofferingdisplaytext"`
-		Networkofferingid           string `json:"networkofferingid"`
-		Networkofferingname         string `json:"networkofferingname"`
-		Physicalnetworkid           string `json:"physicalnetworkid"`
-		Project                     string `json:"project"`
-		Projectid                   string `json:"projectid"`
-		Related                     string `json:"related"`
-		Reservediprange             string `json:"reservediprange"`
-		Restartrequired             bool   `json:"restartrequired"`
-		Service                     []struct {
-			Capability []struct {
-				Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-				Name                       string `json:"name"`
-				Value                      string `json:"value"`
-			} `json:"capability"`
-			Name     string `json:"name"`
-			Provider []struct {
-				Canenableindividualservice   bool     `json:"canenableindividualservice"`
-				Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-				Id                           string   `json:"id"`
-				Name                         string   `json:"name"`
-				Physicalnetworkid            string   `json:"physicalnetworkid"`
-				Servicelist                  []string `json:"servicelist"`
-				State                        string   `json:"state"`
-			} `json:"provider"`
-		} `json:"service"`
-		Specifyipranges  bool   `json:"specifyipranges"`
-		State            string `json:"state"`
-		Strechedl2subnet bool   `json:"strechedl2subnet"`
-		Subdomainaccess  bool   `json:"subdomainaccess"`
-		Tags             []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Traffictype       string        `json:"traffictype"`
-		Type              string        `json:"type"`
-		Vlan              string        `json:"vlan"`
-		Vpcid             string        `json:"vpcid"`
-		Zoneid            string        `json:"zoneid"`
-		Zonename          string        `json:"zonename"`
-		Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-	} `json:"network"`
-	Networkdomain      string `json:"networkdomain"`
-	Project            string `json:"project"`
-	Projectid          string `json:"projectid"`
-	Redundantvpcrouter bool   `json:"redundantvpcrouter"`
-	Regionlevelvpc     bool   `json:"regionlevelvpc"`
-	Restartrequired    bool   `json:"restartrequired"`
-	Service            []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	State string `json:"state"`
-	Tags  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Vpcofferingid string `json:"vpcofferingid"`
-	Zoneid        string `json:"zoneid"`
-	Zonename      string `json:"zonename"`
+	JobID                string                     `json:"jobid"`
+	Account              string                     `json:"account"`
+	Cidr                 string                     `json:"cidr"`
+	Created              string                     `json:"created"`
+	Displaytext          string                     `json:"displaytext"`
+	Distributedvpcrouter bool                       `json:"distributedvpcrouter"`
+	Domain               string                     `json:"domain"`
+	Domainid             string                     `json:"domainid"`
+	Fordisplay           bool                       `json:"fordisplay"`
+	Id                   string                     `json:"id"`
+	Name                 string                     `json:"name"`
+	Network              []UpdateVPCResponseNetwork `json:"network"`
+	Networkdomain        string                     `json:"networkdomain"`
+	Project              string                     `json:"project"`
+	Projectid            string                     `json:"projectid"`
+	Redundantvpcrouter   bool                       `json:"redundantvpcrouter"`
+	Regionlevelvpc       bool                       `json:"regionlevelvpc"`
+	Restartrequired      bool                       `json:"restartrequired"`
+	Service              []UpdateVPCResponseService `json:"service"`
+	State                string                     `json:"state"`
+	Tags                 []Tags                     `json:"tags"`
+	Vpcofferingid        string                     `json:"vpcofferingid"`
+	Zoneid               string                     `json:"zoneid"`
+	Zonename             string                     `json:"zonename"`
+}
+
+type UpdateVPCResponseService struct {
+	Capability []UpdateVPCResponseServiceCapability `json:"capability"`
+	Name       string                               `json:"name"`
+	Provider   []UpdateVPCResponseServiceProvider   `json:"provider"`
+}
+
+type UpdateVPCResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type UpdateVPCResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
+}
+
+type UpdateVPCResponseNetwork struct {
+	Account                     string                            `json:"account"`
+	Aclid                       string                            `json:"aclid"`
+	Acltype                     string                            `json:"acltype"`
+	Broadcastdomaintype         string                            `json:"broadcastdomaintype"`
+	Broadcasturi                string                            `json:"broadcasturi"`
+	Canusefordeploy             bool                              `json:"canusefordeploy"`
+	Cidr                        string                            `json:"cidr"`
+	Displaynetwork              bool                              `json:"displaynetwork"`
+	Displaytext                 string                            `json:"displaytext"`
+	Dns1                        string                            `json:"dns1"`
+	Dns2                        string                            `json:"dns2"`
+	Domain                      string                            `json:"domain"`
+	Domainid                    string                            `json:"domainid"`
+	Externalid                  string                            `json:"externalid"`
+	Gateway                     string                            `json:"gateway"`
+	Id                          string                            `json:"id"`
+	Ip6cidr                     string                            `json:"ip6cidr"`
+	Ip6gateway                  string                            `json:"ip6gateway"`
+	Isdefault                   bool                              `json:"isdefault"`
+	Ispersistent                bool                              `json:"ispersistent"`
+	Issystem                    bool                              `json:"issystem"`
+	Name                        string                            `json:"name"`
+	Netmask                     string                            `json:"netmask"`
+	Networkcidr                 string                            `json:"networkcidr"`
+	Networkdomain               string                            `json:"networkdomain"`
+	Networkofferingavailability string                            `json:"networkofferingavailability"`
+	Networkofferingconservemode bool                              `json:"networkofferingconservemode"`
+	Networkofferingdisplaytext  string                            `json:"networkofferingdisplaytext"`
+	Networkofferingid           string                            `json:"networkofferingid"`
+	Networkofferingname         string                            `json:"networkofferingname"`
+	Physicalnetworkid           string                            `json:"physicalnetworkid"`
+	Project                     string                            `json:"project"`
+	Projectid                   string                            `json:"projectid"`
+	Redundantrouter             bool                              `json:"redundantrouter"`
+	Related                     string                            `json:"related"`
+	Reservediprange             string                            `json:"reservediprange"`
+	Restartrequired             bool                              `json:"restartrequired"`
+	Service                     []UpdateVPCResponseNetworkService `json:"service"`
+	Specifyipranges             bool                              `json:"specifyipranges"`
+	State                       string                            `json:"state"`
+	Strechedl2subnet            bool                              `json:"strechedl2subnet"`
+	Subdomainaccess             bool                              `json:"subdomainaccess"`
+	Tags                        []Tags                            `json:"tags"`
+	Traffictype                 string                            `json:"traffictype"`
+	Type                        string                            `json:"type"`
+	Vlan                        string                            `json:"vlan"`
+	Vpcid                       string                            `json:"vpcid"`
+	Zoneid                      string                            `json:"zoneid"`
+	Zonename                    string                            `json:"zonename"`
+	Zonesnetworkspans           []interface{}                     `json:"zonesnetworkspans"`
+}
+
+type UpdateVPCResponseNetworkService struct {
+	Capability []UpdateVPCResponseNetworkServiceCapability `json:"capability"`
+	Name       string                                      `json:"name"`
+	Provider   []UpdateVPCResponseNetworkServiceProvider   `json:"provider"`
+}
+
+type UpdateVPCResponseNetworkServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type UpdateVPCResponseNetworkServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
 
 type UpdateVPCOfferingParams struct {
@@ -2829,30 +2795,36 @@
 }
 
 type UpdateVPCOfferingResponse struct {
-	JobID                string `json:"jobid"`
-	Created              string `json:"created"`
-	Displaytext          string `json:"displaytext"`
-	Distributedvpcrouter bool   `json:"distributedvpcrouter"`
-	Id                   string `json:"id"`
-	Isdefault            bool   `json:"isdefault"`
-	Name                 string `json:"name"`
-	Service              []struct {
-		Capability []struct {
-			Canchooseservicecapability bool   `json:"canchooseservicecapability"`
-			Name                       string `json:"name"`
-			Value                      string `json:"value"`
-		} `json:"capability"`
-		Name     string `json:"name"`
-		Provider []struct {
-			Canenableindividualservice   bool     `json:"canenableindividualservice"`
-			Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
-			Id                           string   `json:"id"`
-			Name                         string   `json:"name"`
-			Physicalnetworkid            string   `json:"physicalnetworkid"`
-			Servicelist                  []string `json:"servicelist"`
-			State                        string   `json:"state"`
-		} `json:"provider"`
-	} `json:"service"`
-	State                  string `json:"state"`
-	SupportsregionLevelvpc bool   `json:"supportsregionLevelvpc"`
+	JobID                  string                             `json:"jobid"`
+	Created                string                             `json:"created"`
+	Displaytext            string                             `json:"displaytext"`
+	Distributedvpcrouter   bool                               `json:"distributedvpcrouter"`
+	Id                     string                             `json:"id"`
+	Isdefault              bool                               `json:"isdefault"`
+	Name                   string                             `json:"name"`
+	Service                []UpdateVPCOfferingResponseService `json:"service"`
+	State                  string                             `json:"state"`
+	SupportsregionLevelvpc bool                               `json:"supportsregionLevelvpc"`
+}
+
+type UpdateVPCOfferingResponseService struct {
+	Capability []UpdateVPCOfferingResponseServiceCapability `json:"capability"`
+	Name       string                                       `json:"name"`
+	Provider   []UpdateVPCOfferingResponseServiceProvider   `json:"provider"`
+}
+
+type UpdateVPCOfferingResponseServiceProvider struct {
+	Canenableindividualservice   bool     `json:"canenableindividualservice"`
+	Destinationphysicalnetworkid string   `json:"destinationphysicalnetworkid"`
+	Id                           string   `json:"id"`
+	Name                         string   `json:"name"`
+	Physicalnetworkid            string   `json:"physicalnetworkid"`
+	Servicelist                  []string `json:"servicelist"`
+	State                        string   `json:"state"`
+}
+
+type UpdateVPCOfferingResponseServiceCapability struct {
+	Canchooseservicecapability bool   `json:"canchooseservicecapability"`
+	Name                       string `json:"name"`
+	Value                      string `json:"value"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VirtualMachineService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VirtualMachineService.go
index de873e1..638d814 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VirtualMachineService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VirtualMachineService.go
@@ -33,9 +33,20 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["dhcpoptions"]; found {
+		i := 0
+		for k, vv := range v.(map[string]string) {
+			u.Set(fmt.Sprintf("dhcpoptions[%d].key", i), k)
+			u.Set(fmt.Sprintf("dhcpoptions[%d].value", i), vv)
+			i++
+		}
+	}
 	if v, found := p.p["ipaddress"]; found {
 		u.Set("ipaddress", v.(string))
 	}
+	if v, found := p.p["macaddress"]; found {
+		u.Set("macaddress", v.(string))
+	}
 	if v, found := p.p["networkid"]; found {
 		u.Set("networkid", v.(string))
 	}
@@ -45,6 +56,14 @@
 	return u
 }
 
+func (p *AddNicToVirtualMachineParams) SetDhcpoptions(v map[string]string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["dhcpoptions"] = v
+	return
+}
+
 func (p *AddNicToVirtualMachineParams) SetIpaddress(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -53,6 +72,14 @@
 	return
 }
 
+func (p *AddNicToVirtualMachineParams) SetMacaddress(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["macaddress"] = v
+	return
+}
+
 func (p *AddNicToVirtualMachineParams) SetNetworkid(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -115,173 +142,111 @@
 }
 
 type AddNicToVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                        `json:"jobid"`
+	Account               string                                        `json:"account"`
+	Affinitygroup         []AddNicToVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                           `json:"cpunumber"`
+	Cpuspeed              int                                           `json:"cpuspeed"`
+	Cpuused               string                                        `json:"cpuused"`
+	Created               string                                        `json:"created"`
+	Details               map[string]string                             `json:"details"`
+	Diskioread            int64                                         `json:"diskioread"`
+	Diskiowrite           int64                                         `json:"diskiowrite"`
+	Diskkbsread           int64                                         `json:"diskkbsread"`
+	Diskkbswrite          int64                                         `json:"diskkbswrite"`
+	Diskofferingid        string                                        `json:"diskofferingid"`
+	Diskofferingname      string                                        `json:"diskofferingname"`
+	Displayname           string                                        `json:"displayname"`
+	Displayvm             bool                                          `json:"displayvm"`
+	Domain                string                                        `json:"domain"`
+	Domainid              string                                        `json:"domainid"`
+	Forvirtualnetwork     bool                                          `json:"forvirtualnetwork"`
+	Group                 string                                        `json:"group"`
+	Groupid               string                                        `json:"groupid"`
+	Guestosid             string                                        `json:"guestosid"`
+	Haenable              bool                                          `json:"haenable"`
+	Hostid                string                                        `json:"hostid"`
+	Hostname              string                                        `json:"hostname"`
+	Hypervisor            string                                        `json:"hypervisor"`
+	Id                    string                                        `json:"id"`
+	Instancename          string                                        `json:"instancename"`
+	Isdynamicallyscalable bool                                          `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                        `json:"isodisplaytext"`
+	Isoid                 string                                        `json:"isoid"`
+	Isoname               string                                        `json:"isoname"`
+	Keypair               string                                        `json:"keypair"`
+	Memory                int                                           `json:"memory"`
+	Memoryintfreekbs      int64                                         `json:"memoryintfreekbs"`
+	Memorykbs             int64                                         `json:"memorykbs"`
+	Memorytargetkbs       int64                                         `json:"memorytargetkbs"`
+	Name                  string                                        `json:"name"`
+	Networkkbsread        int64                                         `json:"networkkbsread"`
+	Networkkbswrite       int64                                         `json:"networkkbswrite"`
+	Nic                   []Nic                                         `json:"nic"`
+	Ostypeid              int64                                         `json:"ostypeid"`
+	Password              string                                        `json:"password"`
+	Passwordenabled       bool                                          `json:"passwordenabled"`
+	Project               string                                        `json:"project"`
+	Projectid             string                                        `json:"projectid"`
+	Publicip              string                                        `json:"publicip"`
+	Publicipid            string                                        `json:"publicipid"`
+	Rootdeviceid          int64                                         `json:"rootdeviceid"`
+	Rootdevicetype        string                                        `json:"rootdevicetype"`
+	Securitygroup         []AddNicToVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                        `json:"serviceofferingid"`
+	Serviceofferingname   string                                        `json:"serviceofferingname"`
+	Servicestate          string                                        `json:"servicestate"`
+	State                 string                                        `json:"state"`
+	Templatedisplaytext   string                                        `json:"templatedisplaytext"`
+	Templateid            string                                        `json:"templateid"`
+	Templatename          string                                        `json:"templatename"`
+	Userid                string                                        `json:"userid"`
+	Username              string                                        `json:"username"`
+	Vgpu                  string                                        `json:"vgpu"`
+	Zoneid                string                                        `json:"zoneid"`
+	Zonename              string                                        `json:"zonename"`
+}
+
+type AddNicToVirtualMachineResponseSecuritygroup struct {
+	Account             string                                            `json:"account"`
+	Description         string                                            `json:"description"`
+	Domain              string                                            `json:"domain"`
+	Domainid            string                                            `json:"domainid"`
+	Egressrule          []AddNicToVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                            `json:"id"`
+	Ingressrule         []AddNicToVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                            `json:"name"`
+	Project             string                                            `json:"project"`
+	Projectid           string                                            `json:"projectid"`
+	Tags                []Tags                                            `json:"tags"`
+	Virtualmachinecount int                                               `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                     `json:"virtualmachineids"`
+}
+
+type AddNicToVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type AddNicToVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type AssignVirtualMachineParams struct {
@@ -303,6 +268,9 @@
 		vv := strings.Join(v.([]string), ",")
 		u.Set("networkids", vv)
 	}
+	if v, found := p.p["projectid"]; found {
+		u.Set("projectid", v.(string))
+	}
 	if v, found := p.p["securitygroupids"]; found {
 		vv := strings.Join(v.([]string), ",")
 		u.Set("securitygroupids", vv)
@@ -337,6 +305,14 @@
 	return
 }
 
+func (p *AssignVirtualMachineParams) SetProjectid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["projectid"] = v
+	return
+}
+
 func (p *AssignVirtualMachineParams) SetSecuritygroupids(v []string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -355,11 +331,9 @@
 
 // You should always use this function to get a new AssignVirtualMachineParams instance,
 // as then you are sure you have configured all required params
-func (s *VirtualMachineService) NewAssignVirtualMachineParams(account string, domainid string, virtualmachineid string) *AssignVirtualMachineParams {
+func (s *VirtualMachineService) NewAssignVirtualMachineParams(virtualmachineid string) *AssignVirtualMachineParams {
 	p := &AssignVirtualMachineParams{}
 	p.p = make(map[string]interface{})
-	p.p["account"] = account
-	p.p["domainid"] = domainid
 	p.p["virtualmachineid"] = virtualmachineid
 	return p
 }
@@ -380,172 +354,110 @@
 }
 
 type AssignVirtualMachineResponse struct {
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	Account               string                                      `json:"account"`
+	Affinitygroup         []AssignVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                         `json:"cpunumber"`
+	Cpuspeed              int                                         `json:"cpuspeed"`
+	Cpuused               string                                      `json:"cpuused"`
+	Created               string                                      `json:"created"`
+	Details               map[string]string                           `json:"details"`
+	Diskioread            int64                                       `json:"diskioread"`
+	Diskiowrite           int64                                       `json:"diskiowrite"`
+	Diskkbsread           int64                                       `json:"diskkbsread"`
+	Diskkbswrite          int64                                       `json:"diskkbswrite"`
+	Diskofferingid        string                                      `json:"diskofferingid"`
+	Diskofferingname      string                                      `json:"diskofferingname"`
+	Displayname           string                                      `json:"displayname"`
+	Displayvm             bool                                        `json:"displayvm"`
+	Domain                string                                      `json:"domain"`
+	Domainid              string                                      `json:"domainid"`
+	Forvirtualnetwork     bool                                        `json:"forvirtualnetwork"`
+	Group                 string                                      `json:"group"`
+	Groupid               string                                      `json:"groupid"`
+	Guestosid             string                                      `json:"guestosid"`
+	Haenable              bool                                        `json:"haenable"`
+	Hostid                string                                      `json:"hostid"`
+	Hostname              string                                      `json:"hostname"`
+	Hypervisor            string                                      `json:"hypervisor"`
+	Id                    string                                      `json:"id"`
+	Instancename          string                                      `json:"instancename"`
+	Isdynamicallyscalable bool                                        `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                      `json:"isodisplaytext"`
+	Isoid                 string                                      `json:"isoid"`
+	Isoname               string                                      `json:"isoname"`
+	Keypair               string                                      `json:"keypair"`
+	Memory                int                                         `json:"memory"`
+	Memoryintfreekbs      int64                                       `json:"memoryintfreekbs"`
+	Memorykbs             int64                                       `json:"memorykbs"`
+	Memorytargetkbs       int64                                       `json:"memorytargetkbs"`
+	Name                  string                                      `json:"name"`
+	Networkkbsread        int64                                       `json:"networkkbsread"`
+	Networkkbswrite       int64                                       `json:"networkkbswrite"`
+	Nic                   []Nic                                       `json:"nic"`
+	Ostypeid              int64                                       `json:"ostypeid"`
+	Password              string                                      `json:"password"`
+	Passwordenabled       bool                                        `json:"passwordenabled"`
+	Project               string                                      `json:"project"`
+	Projectid             string                                      `json:"projectid"`
+	Publicip              string                                      `json:"publicip"`
+	Publicipid            string                                      `json:"publicipid"`
+	Rootdeviceid          int64                                       `json:"rootdeviceid"`
+	Rootdevicetype        string                                      `json:"rootdevicetype"`
+	Securitygroup         []AssignVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                      `json:"serviceofferingid"`
+	Serviceofferingname   string                                      `json:"serviceofferingname"`
+	Servicestate          string                                      `json:"servicestate"`
+	State                 string                                      `json:"state"`
+	Templatedisplaytext   string                                      `json:"templatedisplaytext"`
+	Templateid            string                                      `json:"templateid"`
+	Templatename          string                                      `json:"templatename"`
+	Userid                string                                      `json:"userid"`
+	Username              string                                      `json:"username"`
+	Vgpu                  string                                      `json:"vgpu"`
+	Zoneid                string                                      `json:"zoneid"`
+	Zonename              string                                      `json:"zonename"`
+}
+
+type AssignVirtualMachineResponseSecuritygroup struct {
+	Account             string                                          `json:"account"`
+	Description         string                                          `json:"description"`
+	Domain              string                                          `json:"domain"`
+	Domainid            string                                          `json:"domainid"`
+	Egressrule          []AssignVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                          `json:"id"`
+	Ingressrule         []AssignVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                          `json:"name"`
+	Project             string                                          `json:"project"`
+	Projectid           string                                          `json:"projectid"`
+	Tags                []Tags                                          `json:"tags"`
+	Virtualmachinecount int                                             `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                   `json:"virtualmachineids"`
+}
+
+type AssignVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type AssignVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type ChangeServiceForVirtualMachineParams struct {
@@ -623,172 +535,110 @@
 }
 
 type ChangeServiceForVirtualMachineResponse struct {
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	Account               string                                                `json:"account"`
+	Affinitygroup         []ChangeServiceForVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                                   `json:"cpunumber"`
+	Cpuspeed              int                                                   `json:"cpuspeed"`
+	Cpuused               string                                                `json:"cpuused"`
+	Created               string                                                `json:"created"`
+	Details               map[string]string                                     `json:"details"`
+	Diskioread            int64                                                 `json:"diskioread"`
+	Diskiowrite           int64                                                 `json:"diskiowrite"`
+	Diskkbsread           int64                                                 `json:"diskkbsread"`
+	Diskkbswrite          int64                                                 `json:"diskkbswrite"`
+	Diskofferingid        string                                                `json:"diskofferingid"`
+	Diskofferingname      string                                                `json:"diskofferingname"`
+	Displayname           string                                                `json:"displayname"`
+	Displayvm             bool                                                  `json:"displayvm"`
+	Domain                string                                                `json:"domain"`
+	Domainid              string                                                `json:"domainid"`
+	Forvirtualnetwork     bool                                                  `json:"forvirtualnetwork"`
+	Group                 string                                                `json:"group"`
+	Groupid               string                                                `json:"groupid"`
+	Guestosid             string                                                `json:"guestosid"`
+	Haenable              bool                                                  `json:"haenable"`
+	Hostid                string                                                `json:"hostid"`
+	Hostname              string                                                `json:"hostname"`
+	Hypervisor            string                                                `json:"hypervisor"`
+	Id                    string                                                `json:"id"`
+	Instancename          string                                                `json:"instancename"`
+	Isdynamicallyscalable bool                                                  `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                                `json:"isodisplaytext"`
+	Isoid                 string                                                `json:"isoid"`
+	Isoname               string                                                `json:"isoname"`
+	Keypair               string                                                `json:"keypair"`
+	Memory                int                                                   `json:"memory"`
+	Memoryintfreekbs      int64                                                 `json:"memoryintfreekbs"`
+	Memorykbs             int64                                                 `json:"memorykbs"`
+	Memorytargetkbs       int64                                                 `json:"memorytargetkbs"`
+	Name                  string                                                `json:"name"`
+	Networkkbsread        int64                                                 `json:"networkkbsread"`
+	Networkkbswrite       int64                                                 `json:"networkkbswrite"`
+	Nic                   []Nic                                                 `json:"nic"`
+	Ostypeid              int64                                                 `json:"ostypeid"`
+	Password              string                                                `json:"password"`
+	Passwordenabled       bool                                                  `json:"passwordenabled"`
+	Project               string                                                `json:"project"`
+	Projectid             string                                                `json:"projectid"`
+	Publicip              string                                                `json:"publicip"`
+	Publicipid            string                                                `json:"publicipid"`
+	Rootdeviceid          int64                                                 `json:"rootdeviceid"`
+	Rootdevicetype        string                                                `json:"rootdevicetype"`
+	Securitygroup         []ChangeServiceForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                                `json:"serviceofferingid"`
+	Serviceofferingname   string                                                `json:"serviceofferingname"`
+	Servicestate          string                                                `json:"servicestate"`
+	State                 string                                                `json:"state"`
+	Templatedisplaytext   string                                                `json:"templatedisplaytext"`
+	Templateid            string                                                `json:"templateid"`
+	Templatename          string                                                `json:"templatename"`
+	Userid                string                                                `json:"userid"`
+	Username              string                                                `json:"username"`
+	Vgpu                  string                                                `json:"vgpu"`
+	Zoneid                string                                                `json:"zoneid"`
+	Zonename              string                                                `json:"zonename"`
+}
+
+type ChangeServiceForVirtualMachineResponseSecuritygroup struct {
+	Account             string                                                    `json:"account"`
+	Description         string                                                    `json:"description"`
+	Domain              string                                                    `json:"domain"`
+	Domainid            string                                                    `json:"domainid"`
+	Egressrule          []ChangeServiceForVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                                    `json:"id"`
+	Ingressrule         []ChangeServiceForVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                                    `json:"name"`
+	Project             string                                                    `json:"project"`
+	Projectid           string                                                    `json:"projectid"`
+	Tags                []Tags                                                    `json:"tags"`
+	Virtualmachinecount int                                                       `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                             `json:"virtualmachineids"`
+}
+
+type ChangeServiceForVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type ChangeServiceForVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type CleanVMReservationsParams struct {
@@ -870,6 +720,14 @@
 	if v, found := p.p["customid"]; found {
 		u.Set("customid", v.(string))
 	}
+	if v, found := p.p["datadiskofferinglist"]; found {
+		i := 0
+		for k, vv := range v.(map[string]string) {
+			u.Set(fmt.Sprintf("datadiskofferinglist[%d].key", i), k)
+			u.Set(fmt.Sprintf("datadiskofferinglist[%d].value", i), vv)
+			i++
+		}
+	}
 	if v, found := p.p["deploymentplanner"]; found {
 		u.Set("deploymentplanner", v.(string))
 	}
@@ -880,6 +738,14 @@
 			i++
 		}
 	}
+	if v, found := p.p["dhcpoptionsnetworklist"]; found {
+		i := 0
+		for k, vv := range v.(map[string]string) {
+			u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].key", i), k)
+			u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].value", i), vv)
+			i++
+		}
+	}
 	if v, found := p.p["diskofferingid"]; found {
 		u.Set("diskofferingid", v.(string))
 	}
@@ -922,6 +788,9 @@
 	if v, found := p.p["keypair"]; found {
 		u.Set("keypair", v.(string))
 	}
+	if v, found := p.p["macaddress"]; found {
+		u.Set("macaddress", v.(string))
+	}
 	if v, found := p.p["name"]; found {
 		u.Set("name", v.(string))
 	}
@@ -999,6 +868,14 @@
 	return
 }
 
+func (p *DeployVirtualMachineParams) SetDatadiskofferinglist(v map[string]string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["datadiskofferinglist"] = v
+	return
+}
+
 func (p *DeployVirtualMachineParams) SetDeploymentplanner(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1015,6 +892,14 @@
 	return
 }
 
+func (p *DeployVirtualMachineParams) SetDhcpoptionsnetworklist(v map[string]string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["dhcpoptionsnetworklist"] = v
+	return
+}
+
 func (p *DeployVirtualMachineParams) SetDiskofferingid(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1111,6 +996,14 @@
 	return
 }
 
+func (p *DeployVirtualMachineParams) SetMacaddress(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["macaddress"] = v
+	return
+}
+
 func (p *DeployVirtualMachineParams) SetName(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1254,173 +1147,111 @@
 }
 
 type DeployVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                      `json:"jobid"`
+	Account               string                                      `json:"account"`
+	Affinitygroup         []DeployVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                         `json:"cpunumber"`
+	Cpuspeed              int                                         `json:"cpuspeed"`
+	Cpuused               string                                      `json:"cpuused"`
+	Created               string                                      `json:"created"`
+	Details               map[string]string                           `json:"details"`
+	Diskioread            int64                                       `json:"diskioread"`
+	Diskiowrite           int64                                       `json:"diskiowrite"`
+	Diskkbsread           int64                                       `json:"diskkbsread"`
+	Diskkbswrite          int64                                       `json:"diskkbswrite"`
+	Diskofferingid        string                                      `json:"diskofferingid"`
+	Diskofferingname      string                                      `json:"diskofferingname"`
+	Displayname           string                                      `json:"displayname"`
+	Displayvm             bool                                        `json:"displayvm"`
+	Domain                string                                      `json:"domain"`
+	Domainid              string                                      `json:"domainid"`
+	Forvirtualnetwork     bool                                        `json:"forvirtualnetwork"`
+	Group                 string                                      `json:"group"`
+	Groupid               string                                      `json:"groupid"`
+	Guestosid             string                                      `json:"guestosid"`
+	Haenable              bool                                        `json:"haenable"`
+	Hostid                string                                      `json:"hostid"`
+	Hostname              string                                      `json:"hostname"`
+	Hypervisor            string                                      `json:"hypervisor"`
+	Id                    string                                      `json:"id"`
+	Instancename          string                                      `json:"instancename"`
+	Isdynamicallyscalable bool                                        `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                      `json:"isodisplaytext"`
+	Isoid                 string                                      `json:"isoid"`
+	Isoname               string                                      `json:"isoname"`
+	Keypair               string                                      `json:"keypair"`
+	Memory                int                                         `json:"memory"`
+	Memoryintfreekbs      int64                                       `json:"memoryintfreekbs"`
+	Memorykbs             int64                                       `json:"memorykbs"`
+	Memorytargetkbs       int64                                       `json:"memorytargetkbs"`
+	Name                  string                                      `json:"name"`
+	Networkkbsread        int64                                       `json:"networkkbsread"`
+	Networkkbswrite       int64                                       `json:"networkkbswrite"`
+	Nic                   []Nic                                       `json:"nic"`
+	Ostypeid              int64                                       `json:"ostypeid"`
+	Password              string                                      `json:"password"`
+	Passwordenabled       bool                                        `json:"passwordenabled"`
+	Project               string                                      `json:"project"`
+	Projectid             string                                      `json:"projectid"`
+	Publicip              string                                      `json:"publicip"`
+	Publicipid            string                                      `json:"publicipid"`
+	Rootdeviceid          int64                                       `json:"rootdeviceid"`
+	Rootdevicetype        string                                      `json:"rootdevicetype"`
+	Securitygroup         []DeployVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                      `json:"serviceofferingid"`
+	Serviceofferingname   string                                      `json:"serviceofferingname"`
+	Servicestate          string                                      `json:"servicestate"`
+	State                 string                                      `json:"state"`
+	Templatedisplaytext   string                                      `json:"templatedisplaytext"`
+	Templateid            string                                      `json:"templateid"`
+	Templatename          string                                      `json:"templatename"`
+	Userid                string                                      `json:"userid"`
+	Username              string                                      `json:"username"`
+	Vgpu                  string                                      `json:"vgpu"`
+	Zoneid                string                                      `json:"zoneid"`
+	Zonename              string                                      `json:"zonename"`
+}
+
+type DeployVirtualMachineResponseSecuritygroup struct {
+	Account             string                                          `json:"account"`
+	Description         string                                          `json:"description"`
+	Domain              string                                          `json:"domain"`
+	Domainid            string                                          `json:"domainid"`
+	Egressrule          []DeployVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                          `json:"id"`
+	Ingressrule         []DeployVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                          `json:"name"`
+	Project             string                                          `json:"project"`
+	Projectid           string                                          `json:"projectid"`
+	Tags                []Tags                                          `json:"tags"`
+	Virtualmachinecount int                                             `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                   `json:"virtualmachineids"`
+}
+
+type DeployVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type DeployVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type DestroyVirtualMachineParams struct {
@@ -1503,173 +1334,111 @@
 }
 
 type DestroyVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                       `json:"jobid"`
+	Account               string                                       `json:"account"`
+	Affinitygroup         []DestroyVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                          `json:"cpunumber"`
+	Cpuspeed              int                                          `json:"cpuspeed"`
+	Cpuused               string                                       `json:"cpuused"`
+	Created               string                                       `json:"created"`
+	Details               map[string]string                            `json:"details"`
+	Diskioread            int64                                        `json:"diskioread"`
+	Diskiowrite           int64                                        `json:"diskiowrite"`
+	Diskkbsread           int64                                        `json:"diskkbsread"`
+	Diskkbswrite          int64                                        `json:"diskkbswrite"`
+	Diskofferingid        string                                       `json:"diskofferingid"`
+	Diskofferingname      string                                       `json:"diskofferingname"`
+	Displayname           string                                       `json:"displayname"`
+	Displayvm             bool                                         `json:"displayvm"`
+	Domain                string                                       `json:"domain"`
+	Domainid              string                                       `json:"domainid"`
+	Forvirtualnetwork     bool                                         `json:"forvirtualnetwork"`
+	Group                 string                                       `json:"group"`
+	Groupid               string                                       `json:"groupid"`
+	Guestosid             string                                       `json:"guestosid"`
+	Haenable              bool                                         `json:"haenable"`
+	Hostid                string                                       `json:"hostid"`
+	Hostname              string                                       `json:"hostname"`
+	Hypervisor            string                                       `json:"hypervisor"`
+	Id                    string                                       `json:"id"`
+	Instancename          string                                       `json:"instancename"`
+	Isdynamicallyscalable bool                                         `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                       `json:"isodisplaytext"`
+	Isoid                 string                                       `json:"isoid"`
+	Isoname               string                                       `json:"isoname"`
+	Keypair               string                                       `json:"keypair"`
+	Memory                int                                          `json:"memory"`
+	Memoryintfreekbs      int64                                        `json:"memoryintfreekbs"`
+	Memorykbs             int64                                        `json:"memorykbs"`
+	Memorytargetkbs       int64                                        `json:"memorytargetkbs"`
+	Name                  string                                       `json:"name"`
+	Networkkbsread        int64                                        `json:"networkkbsread"`
+	Networkkbswrite       int64                                        `json:"networkkbswrite"`
+	Nic                   []Nic                                        `json:"nic"`
+	Ostypeid              int64                                        `json:"ostypeid"`
+	Password              string                                       `json:"password"`
+	Passwordenabled       bool                                         `json:"passwordenabled"`
+	Project               string                                       `json:"project"`
+	Projectid             string                                       `json:"projectid"`
+	Publicip              string                                       `json:"publicip"`
+	Publicipid            string                                       `json:"publicipid"`
+	Rootdeviceid          int64                                        `json:"rootdeviceid"`
+	Rootdevicetype        string                                       `json:"rootdevicetype"`
+	Securitygroup         []DestroyVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                       `json:"serviceofferingid"`
+	Serviceofferingname   string                                       `json:"serviceofferingname"`
+	Servicestate          string                                       `json:"servicestate"`
+	State                 string                                       `json:"state"`
+	Templatedisplaytext   string                                       `json:"templatedisplaytext"`
+	Templateid            string                                       `json:"templateid"`
+	Templatename          string                                       `json:"templatename"`
+	Userid                string                                       `json:"userid"`
+	Username              string                                       `json:"username"`
+	Vgpu                  string                                       `json:"vgpu"`
+	Zoneid                string                                       `json:"zoneid"`
+	Zonename              string                                       `json:"zonename"`
+}
+
+type DestroyVirtualMachineResponseSecuritygroup struct {
+	Account             string                                           `json:"account"`
+	Description         string                                           `json:"description"`
+	Domain              string                                           `json:"domain"`
+	Domainid            string                                           `json:"domainid"`
+	Egressrule          []DestroyVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                           `json:"id"`
+	Ingressrule         []DestroyVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                           `json:"name"`
+	Project             string                                           `json:"project"`
+	Projectid           string                                           `json:"projectid"`
+	Tags                []Tags                                           `json:"tags"`
+	Virtualmachinecount int                                              `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                    `json:"virtualmachineids"`
+}
+
+type DestroyVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type DestroyVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type ExpungeVirtualMachineParams struct {
@@ -1827,9 +1596,6 @@
 	if v, found := p.p["hostid"]; found {
 		u.Set("hostid", v.(string))
 	}
-	if v, found := p.p["hostid"]; found {
-		u.Set("hostid", v.(string))
-	}
 	if v, found := p.p["hypervisor"]; found {
 		u.Set("hypervisor", v.(string))
 	}
@@ -1874,9 +1640,6 @@
 	if v, found := p.p["podid"]; found {
 		u.Set("podid", v.(string))
 	}
-	if v, found := p.p["podid"]; found {
-		u.Set("podid", v.(string))
-	}
 	if v, found := p.p["projectid"]; found {
 		u.Set("projectid", v.(string))
 	}
@@ -1889,9 +1652,6 @@
 	if v, found := p.p["storageid"]; found {
 		u.Set("storageid", v.(string))
 	}
-	if v, found := p.p["storageid"]; found {
-		u.Set("storageid", v.(string))
-	}
 	if v, found := p.p["tags"]; found {
 		i := 0
 		for k, vv := range v.(map[string]string) {
@@ -2267,172 +2027,110 @@
 }
 
 type VirtualMachine struct {
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	Account               string                        `json:"account"`
+	Affinitygroup         []VirtualMachineAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                           `json:"cpunumber"`
+	Cpuspeed              int                           `json:"cpuspeed"`
+	Cpuused               string                        `json:"cpuused"`
+	Created               string                        `json:"created"`
+	Details               map[string]string             `json:"details"`
+	Diskioread            int64                         `json:"diskioread"`
+	Diskiowrite           int64                         `json:"diskiowrite"`
+	Diskkbsread           int64                         `json:"diskkbsread"`
+	Diskkbswrite          int64                         `json:"diskkbswrite"`
+	Diskofferingid        string                        `json:"diskofferingid"`
+	Diskofferingname      string                        `json:"diskofferingname"`
+	Displayname           string                        `json:"displayname"`
+	Displayvm             bool                          `json:"displayvm"`
+	Domain                string                        `json:"domain"`
+	Domainid              string                        `json:"domainid"`
+	Forvirtualnetwork     bool                          `json:"forvirtualnetwork"`
+	Group                 string                        `json:"group"`
+	Groupid               string                        `json:"groupid"`
+	Guestosid             string                        `json:"guestosid"`
+	Haenable              bool                          `json:"haenable"`
+	Hostid                string                        `json:"hostid"`
+	Hostname              string                        `json:"hostname"`
+	Hypervisor            string                        `json:"hypervisor"`
+	Id                    string                        `json:"id"`
+	Instancename          string                        `json:"instancename"`
+	Isdynamicallyscalable bool                          `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                        `json:"isodisplaytext"`
+	Isoid                 string                        `json:"isoid"`
+	Isoname               string                        `json:"isoname"`
+	Keypair               string                        `json:"keypair"`
+	Memory                int                           `json:"memory"`
+	Memoryintfreekbs      int64                         `json:"memoryintfreekbs"`
+	Memorykbs             int64                         `json:"memorykbs"`
+	Memorytargetkbs       int64                         `json:"memorytargetkbs"`
+	Name                  string                        `json:"name"`
+	Networkkbsread        int64                         `json:"networkkbsread"`
+	Networkkbswrite       int64                         `json:"networkkbswrite"`
+	Nic                   []Nic                         `json:"nic"`
+	Ostypeid              int64                         `json:"ostypeid"`
+	Password              string                        `json:"password"`
+	Passwordenabled       bool                          `json:"passwordenabled"`
+	Project               string                        `json:"project"`
+	Projectid             string                        `json:"projectid"`
+	Publicip              string                        `json:"publicip"`
+	Publicipid            string                        `json:"publicipid"`
+	Rootdeviceid          int64                         `json:"rootdeviceid"`
+	Rootdevicetype        string                        `json:"rootdevicetype"`
+	Securitygroup         []VirtualMachineSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                        `json:"serviceofferingid"`
+	Serviceofferingname   string                        `json:"serviceofferingname"`
+	Servicestate          string                        `json:"servicestate"`
+	State                 string                        `json:"state"`
+	Templatedisplaytext   string                        `json:"templatedisplaytext"`
+	Templateid            string                        `json:"templateid"`
+	Templatename          string                        `json:"templatename"`
+	Userid                string                        `json:"userid"`
+	Username              string                        `json:"username"`
+	Vgpu                  string                        `json:"vgpu"`
+	Zoneid                string                        `json:"zoneid"`
+	Zonename              string                        `json:"zonename"`
+}
+
+type VirtualMachineSecuritygroup struct {
+	Account             string                            `json:"account"`
+	Description         string                            `json:"description"`
+	Domain              string                            `json:"domain"`
+	Domainid            string                            `json:"domainid"`
+	Egressrule          []VirtualMachineSecuritygroupRule `json:"egressrule"`
+	Id                  string                            `json:"id"`
+	Ingressrule         []VirtualMachineSecuritygroupRule `json:"ingressrule"`
+	Name                string                            `json:"name"`
+	Project             string                            `json:"project"`
+	Projectid           string                            `json:"projectid"`
+	Tags                []Tags                            `json:"tags"`
+	Virtualmachinecount int                               `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                     `json:"virtualmachineids"`
+}
+
+type VirtualMachineSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type VirtualMachineAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type MigrateVirtualMachineParams struct {
@@ -2525,173 +2223,111 @@
 }
 
 type MigrateVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                       `json:"jobid"`
+	Account               string                                       `json:"account"`
+	Affinitygroup         []MigrateVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                          `json:"cpunumber"`
+	Cpuspeed              int                                          `json:"cpuspeed"`
+	Cpuused               string                                       `json:"cpuused"`
+	Created               string                                       `json:"created"`
+	Details               map[string]string                            `json:"details"`
+	Diskioread            int64                                        `json:"diskioread"`
+	Diskiowrite           int64                                        `json:"diskiowrite"`
+	Diskkbsread           int64                                        `json:"diskkbsread"`
+	Diskkbswrite          int64                                        `json:"diskkbswrite"`
+	Diskofferingid        string                                       `json:"diskofferingid"`
+	Diskofferingname      string                                       `json:"diskofferingname"`
+	Displayname           string                                       `json:"displayname"`
+	Displayvm             bool                                         `json:"displayvm"`
+	Domain                string                                       `json:"domain"`
+	Domainid              string                                       `json:"domainid"`
+	Forvirtualnetwork     bool                                         `json:"forvirtualnetwork"`
+	Group                 string                                       `json:"group"`
+	Groupid               string                                       `json:"groupid"`
+	Guestosid             string                                       `json:"guestosid"`
+	Haenable              bool                                         `json:"haenable"`
+	Hostid                string                                       `json:"hostid"`
+	Hostname              string                                       `json:"hostname"`
+	Hypervisor            string                                       `json:"hypervisor"`
+	Id                    string                                       `json:"id"`
+	Instancename          string                                       `json:"instancename"`
+	Isdynamicallyscalable bool                                         `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                       `json:"isodisplaytext"`
+	Isoid                 string                                       `json:"isoid"`
+	Isoname               string                                       `json:"isoname"`
+	Keypair               string                                       `json:"keypair"`
+	Memory                int                                          `json:"memory"`
+	Memoryintfreekbs      int64                                        `json:"memoryintfreekbs"`
+	Memorykbs             int64                                        `json:"memorykbs"`
+	Memorytargetkbs       int64                                        `json:"memorytargetkbs"`
+	Name                  string                                       `json:"name"`
+	Networkkbsread        int64                                        `json:"networkkbsread"`
+	Networkkbswrite       int64                                        `json:"networkkbswrite"`
+	Nic                   []Nic                                        `json:"nic"`
+	Ostypeid              int64                                        `json:"ostypeid"`
+	Password              string                                       `json:"password"`
+	Passwordenabled       bool                                         `json:"passwordenabled"`
+	Project               string                                       `json:"project"`
+	Projectid             string                                       `json:"projectid"`
+	Publicip              string                                       `json:"publicip"`
+	Publicipid            string                                       `json:"publicipid"`
+	Rootdeviceid          int64                                        `json:"rootdeviceid"`
+	Rootdevicetype        string                                       `json:"rootdevicetype"`
+	Securitygroup         []MigrateVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                       `json:"serviceofferingid"`
+	Serviceofferingname   string                                       `json:"serviceofferingname"`
+	Servicestate          string                                       `json:"servicestate"`
+	State                 string                                       `json:"state"`
+	Templatedisplaytext   string                                       `json:"templatedisplaytext"`
+	Templateid            string                                       `json:"templateid"`
+	Templatename          string                                       `json:"templatename"`
+	Userid                string                                       `json:"userid"`
+	Username              string                                       `json:"username"`
+	Vgpu                  string                                       `json:"vgpu"`
+	Zoneid                string                                       `json:"zoneid"`
+	Zonename              string                                       `json:"zonename"`
+}
+
+type MigrateVirtualMachineResponseSecuritygroup struct {
+	Account             string                                           `json:"account"`
+	Description         string                                           `json:"description"`
+	Domain              string                                           `json:"domain"`
+	Domainid            string                                           `json:"domainid"`
+	Egressrule          []MigrateVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                           `json:"id"`
+	Ingressrule         []MigrateVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                           `json:"name"`
+	Project             string                                           `json:"project"`
+	Projectid           string                                           `json:"projectid"`
+	Tags                []Tags                                           `json:"tags"`
+	Virtualmachinecount int                                              `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                    `json:"virtualmachineids"`
+}
+
+type MigrateVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type MigrateVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type MigrateVirtualMachineWithVolumeParams struct {
@@ -2790,173 +2426,111 @@
 }
 
 type MigrateVirtualMachineWithVolumeResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                                 `json:"jobid"`
+	Account               string                                                 `json:"account"`
+	Affinitygroup         []MigrateVirtualMachineWithVolumeResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                                    `json:"cpunumber"`
+	Cpuspeed              int                                                    `json:"cpuspeed"`
+	Cpuused               string                                                 `json:"cpuused"`
+	Created               string                                                 `json:"created"`
+	Details               map[string]string                                      `json:"details"`
+	Diskioread            int64                                                  `json:"diskioread"`
+	Diskiowrite           int64                                                  `json:"diskiowrite"`
+	Diskkbsread           int64                                                  `json:"diskkbsread"`
+	Diskkbswrite          int64                                                  `json:"diskkbswrite"`
+	Diskofferingid        string                                                 `json:"diskofferingid"`
+	Diskofferingname      string                                                 `json:"diskofferingname"`
+	Displayname           string                                                 `json:"displayname"`
+	Displayvm             bool                                                   `json:"displayvm"`
+	Domain                string                                                 `json:"domain"`
+	Domainid              string                                                 `json:"domainid"`
+	Forvirtualnetwork     bool                                                   `json:"forvirtualnetwork"`
+	Group                 string                                                 `json:"group"`
+	Groupid               string                                                 `json:"groupid"`
+	Guestosid             string                                                 `json:"guestosid"`
+	Haenable              bool                                                   `json:"haenable"`
+	Hostid                string                                                 `json:"hostid"`
+	Hostname              string                                                 `json:"hostname"`
+	Hypervisor            string                                                 `json:"hypervisor"`
+	Id                    string                                                 `json:"id"`
+	Instancename          string                                                 `json:"instancename"`
+	Isdynamicallyscalable bool                                                   `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                                 `json:"isodisplaytext"`
+	Isoid                 string                                                 `json:"isoid"`
+	Isoname               string                                                 `json:"isoname"`
+	Keypair               string                                                 `json:"keypair"`
+	Memory                int                                                    `json:"memory"`
+	Memoryintfreekbs      int64                                                  `json:"memoryintfreekbs"`
+	Memorykbs             int64                                                  `json:"memorykbs"`
+	Memorytargetkbs       int64                                                  `json:"memorytargetkbs"`
+	Name                  string                                                 `json:"name"`
+	Networkkbsread        int64                                                  `json:"networkkbsread"`
+	Networkkbswrite       int64                                                  `json:"networkkbswrite"`
+	Nic                   []Nic                                                  `json:"nic"`
+	Ostypeid              int64                                                  `json:"ostypeid"`
+	Password              string                                                 `json:"password"`
+	Passwordenabled       bool                                                   `json:"passwordenabled"`
+	Project               string                                                 `json:"project"`
+	Projectid             string                                                 `json:"projectid"`
+	Publicip              string                                                 `json:"publicip"`
+	Publicipid            string                                                 `json:"publicipid"`
+	Rootdeviceid          int64                                                  `json:"rootdeviceid"`
+	Rootdevicetype        string                                                 `json:"rootdevicetype"`
+	Securitygroup         []MigrateVirtualMachineWithVolumeResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                                 `json:"serviceofferingid"`
+	Serviceofferingname   string                                                 `json:"serviceofferingname"`
+	Servicestate          string                                                 `json:"servicestate"`
+	State                 string                                                 `json:"state"`
+	Templatedisplaytext   string                                                 `json:"templatedisplaytext"`
+	Templateid            string                                                 `json:"templateid"`
+	Templatename          string                                                 `json:"templatename"`
+	Userid                string                                                 `json:"userid"`
+	Username              string                                                 `json:"username"`
+	Vgpu                  string                                                 `json:"vgpu"`
+	Zoneid                string                                                 `json:"zoneid"`
+	Zonename              string                                                 `json:"zonename"`
+}
+
+type MigrateVirtualMachineWithVolumeResponseSecuritygroup struct {
+	Account             string                                                     `json:"account"`
+	Description         string                                                     `json:"description"`
+	Domain              string                                                     `json:"domain"`
+	Domainid            string                                                     `json:"domainid"`
+	Egressrule          []MigrateVirtualMachineWithVolumeResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                                     `json:"id"`
+	Ingressrule         []MigrateVirtualMachineWithVolumeResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                                     `json:"name"`
+	Project             string                                                     `json:"project"`
+	Projectid           string                                                     `json:"projectid"`
+	Tags                []Tags                                                     `json:"tags"`
+	Virtualmachinecount int                                                        `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                              `json:"virtualmachineids"`
+}
+
+type MigrateVirtualMachineWithVolumeResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type MigrateVirtualMachineWithVolumeResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type RebootVirtualMachineParams struct {
@@ -3027,173 +2601,111 @@
 }
 
 type RebootVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                      `json:"jobid"`
+	Account               string                                      `json:"account"`
+	Affinitygroup         []RebootVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                         `json:"cpunumber"`
+	Cpuspeed              int                                         `json:"cpuspeed"`
+	Cpuused               string                                      `json:"cpuused"`
+	Created               string                                      `json:"created"`
+	Details               map[string]string                           `json:"details"`
+	Diskioread            int64                                       `json:"diskioread"`
+	Diskiowrite           int64                                       `json:"diskiowrite"`
+	Diskkbsread           int64                                       `json:"diskkbsread"`
+	Diskkbswrite          int64                                       `json:"diskkbswrite"`
+	Diskofferingid        string                                      `json:"diskofferingid"`
+	Diskofferingname      string                                      `json:"diskofferingname"`
+	Displayname           string                                      `json:"displayname"`
+	Displayvm             bool                                        `json:"displayvm"`
+	Domain                string                                      `json:"domain"`
+	Domainid              string                                      `json:"domainid"`
+	Forvirtualnetwork     bool                                        `json:"forvirtualnetwork"`
+	Group                 string                                      `json:"group"`
+	Groupid               string                                      `json:"groupid"`
+	Guestosid             string                                      `json:"guestosid"`
+	Haenable              bool                                        `json:"haenable"`
+	Hostid                string                                      `json:"hostid"`
+	Hostname              string                                      `json:"hostname"`
+	Hypervisor            string                                      `json:"hypervisor"`
+	Id                    string                                      `json:"id"`
+	Instancename          string                                      `json:"instancename"`
+	Isdynamicallyscalable bool                                        `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                      `json:"isodisplaytext"`
+	Isoid                 string                                      `json:"isoid"`
+	Isoname               string                                      `json:"isoname"`
+	Keypair               string                                      `json:"keypair"`
+	Memory                int                                         `json:"memory"`
+	Memoryintfreekbs      int64                                       `json:"memoryintfreekbs"`
+	Memorykbs             int64                                       `json:"memorykbs"`
+	Memorytargetkbs       int64                                       `json:"memorytargetkbs"`
+	Name                  string                                      `json:"name"`
+	Networkkbsread        int64                                       `json:"networkkbsread"`
+	Networkkbswrite       int64                                       `json:"networkkbswrite"`
+	Nic                   []Nic                                       `json:"nic"`
+	Ostypeid              int64                                       `json:"ostypeid"`
+	Password              string                                      `json:"password"`
+	Passwordenabled       bool                                        `json:"passwordenabled"`
+	Project               string                                      `json:"project"`
+	Projectid             string                                      `json:"projectid"`
+	Publicip              string                                      `json:"publicip"`
+	Publicipid            string                                      `json:"publicipid"`
+	Rootdeviceid          int64                                       `json:"rootdeviceid"`
+	Rootdevicetype        string                                      `json:"rootdevicetype"`
+	Securitygroup         []RebootVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                      `json:"serviceofferingid"`
+	Serviceofferingname   string                                      `json:"serviceofferingname"`
+	Servicestate          string                                      `json:"servicestate"`
+	State                 string                                      `json:"state"`
+	Templatedisplaytext   string                                      `json:"templatedisplaytext"`
+	Templateid            string                                      `json:"templateid"`
+	Templatename          string                                      `json:"templatename"`
+	Userid                string                                      `json:"userid"`
+	Username              string                                      `json:"username"`
+	Vgpu                  string                                      `json:"vgpu"`
+	Zoneid                string                                      `json:"zoneid"`
+	Zonename              string                                      `json:"zonename"`
+}
+
+type RebootVirtualMachineResponseSecuritygroup struct {
+	Account             string                                          `json:"account"`
+	Description         string                                          `json:"description"`
+	Domain              string                                          `json:"domain"`
+	Domainid            string                                          `json:"domainid"`
+	Egressrule          []RebootVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                          `json:"id"`
+	Ingressrule         []RebootVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                          `json:"name"`
+	Project             string                                          `json:"project"`
+	Projectid           string                                          `json:"projectid"`
+	Tags                []Tags                                          `json:"tags"`
+	Virtualmachinecount int                                             `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                   `json:"virtualmachineids"`
+}
+
+type RebootVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type RebootVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type RecoverVirtualMachineParams struct {
@@ -3244,172 +2756,110 @@
 }
 
 type RecoverVirtualMachineResponse struct {
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	Account               string                                       `json:"account"`
+	Affinitygroup         []RecoverVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                          `json:"cpunumber"`
+	Cpuspeed              int                                          `json:"cpuspeed"`
+	Cpuused               string                                       `json:"cpuused"`
+	Created               string                                       `json:"created"`
+	Details               map[string]string                            `json:"details"`
+	Diskioread            int64                                        `json:"diskioread"`
+	Diskiowrite           int64                                        `json:"diskiowrite"`
+	Diskkbsread           int64                                        `json:"diskkbsread"`
+	Diskkbswrite          int64                                        `json:"diskkbswrite"`
+	Diskofferingid        string                                       `json:"diskofferingid"`
+	Diskofferingname      string                                       `json:"diskofferingname"`
+	Displayname           string                                       `json:"displayname"`
+	Displayvm             bool                                         `json:"displayvm"`
+	Domain                string                                       `json:"domain"`
+	Domainid              string                                       `json:"domainid"`
+	Forvirtualnetwork     bool                                         `json:"forvirtualnetwork"`
+	Group                 string                                       `json:"group"`
+	Groupid               string                                       `json:"groupid"`
+	Guestosid             string                                       `json:"guestosid"`
+	Haenable              bool                                         `json:"haenable"`
+	Hostid                string                                       `json:"hostid"`
+	Hostname              string                                       `json:"hostname"`
+	Hypervisor            string                                       `json:"hypervisor"`
+	Id                    string                                       `json:"id"`
+	Instancename          string                                       `json:"instancename"`
+	Isdynamicallyscalable bool                                         `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                       `json:"isodisplaytext"`
+	Isoid                 string                                       `json:"isoid"`
+	Isoname               string                                       `json:"isoname"`
+	Keypair               string                                       `json:"keypair"`
+	Memory                int                                          `json:"memory"`
+	Memoryintfreekbs      int64                                        `json:"memoryintfreekbs"`
+	Memorykbs             int64                                        `json:"memorykbs"`
+	Memorytargetkbs       int64                                        `json:"memorytargetkbs"`
+	Name                  string                                       `json:"name"`
+	Networkkbsread        int64                                        `json:"networkkbsread"`
+	Networkkbswrite       int64                                        `json:"networkkbswrite"`
+	Nic                   []Nic                                        `json:"nic"`
+	Ostypeid              int64                                        `json:"ostypeid"`
+	Password              string                                       `json:"password"`
+	Passwordenabled       bool                                         `json:"passwordenabled"`
+	Project               string                                       `json:"project"`
+	Projectid             string                                       `json:"projectid"`
+	Publicip              string                                       `json:"publicip"`
+	Publicipid            string                                       `json:"publicipid"`
+	Rootdeviceid          int64                                        `json:"rootdeviceid"`
+	Rootdevicetype        string                                       `json:"rootdevicetype"`
+	Securitygroup         []RecoverVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                       `json:"serviceofferingid"`
+	Serviceofferingname   string                                       `json:"serviceofferingname"`
+	Servicestate          string                                       `json:"servicestate"`
+	State                 string                                       `json:"state"`
+	Templatedisplaytext   string                                       `json:"templatedisplaytext"`
+	Templateid            string                                       `json:"templateid"`
+	Templatename          string                                       `json:"templatename"`
+	Userid                string                                       `json:"userid"`
+	Username              string                                       `json:"username"`
+	Vgpu                  string                                       `json:"vgpu"`
+	Zoneid                string                                       `json:"zoneid"`
+	Zonename              string                                       `json:"zonename"`
+}
+
+type RecoverVirtualMachineResponseSecuritygroup struct {
+	Account             string                                           `json:"account"`
+	Description         string                                           `json:"description"`
+	Domain              string                                           `json:"domain"`
+	Domainid            string                                           `json:"domainid"`
+	Egressrule          []RecoverVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                           `json:"id"`
+	Ingressrule         []RecoverVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                           `json:"name"`
+	Project             string                                           `json:"project"`
+	Projectid           string                                           `json:"projectid"`
+	Tags                []Tags                                           `json:"tags"`
+	Virtualmachinecount int                                              `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                    `json:"virtualmachineids"`
+}
+
+type RecoverVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type RecoverVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type RemoveNicFromVirtualMachineParams struct {
@@ -3492,173 +2942,111 @@
 }
 
 type RemoveNicFromVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                             `json:"jobid"`
+	Account               string                                             `json:"account"`
+	Affinitygroup         []RemoveNicFromVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                                `json:"cpunumber"`
+	Cpuspeed              int                                                `json:"cpuspeed"`
+	Cpuused               string                                             `json:"cpuused"`
+	Created               string                                             `json:"created"`
+	Details               map[string]string                                  `json:"details"`
+	Diskioread            int64                                              `json:"diskioread"`
+	Diskiowrite           int64                                              `json:"diskiowrite"`
+	Diskkbsread           int64                                              `json:"diskkbsread"`
+	Diskkbswrite          int64                                              `json:"diskkbswrite"`
+	Diskofferingid        string                                             `json:"diskofferingid"`
+	Diskofferingname      string                                             `json:"diskofferingname"`
+	Displayname           string                                             `json:"displayname"`
+	Displayvm             bool                                               `json:"displayvm"`
+	Domain                string                                             `json:"domain"`
+	Domainid              string                                             `json:"domainid"`
+	Forvirtualnetwork     bool                                               `json:"forvirtualnetwork"`
+	Group                 string                                             `json:"group"`
+	Groupid               string                                             `json:"groupid"`
+	Guestosid             string                                             `json:"guestosid"`
+	Haenable              bool                                               `json:"haenable"`
+	Hostid                string                                             `json:"hostid"`
+	Hostname              string                                             `json:"hostname"`
+	Hypervisor            string                                             `json:"hypervisor"`
+	Id                    string                                             `json:"id"`
+	Instancename          string                                             `json:"instancename"`
+	Isdynamicallyscalable bool                                               `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                             `json:"isodisplaytext"`
+	Isoid                 string                                             `json:"isoid"`
+	Isoname               string                                             `json:"isoname"`
+	Keypair               string                                             `json:"keypair"`
+	Memory                int                                                `json:"memory"`
+	Memoryintfreekbs      int64                                              `json:"memoryintfreekbs"`
+	Memorykbs             int64                                              `json:"memorykbs"`
+	Memorytargetkbs       int64                                              `json:"memorytargetkbs"`
+	Name                  string                                             `json:"name"`
+	Networkkbsread        int64                                              `json:"networkkbsread"`
+	Networkkbswrite       int64                                              `json:"networkkbswrite"`
+	Nic                   []Nic                                              `json:"nic"`
+	Ostypeid              int64                                              `json:"ostypeid"`
+	Password              string                                             `json:"password"`
+	Passwordenabled       bool                                               `json:"passwordenabled"`
+	Project               string                                             `json:"project"`
+	Projectid             string                                             `json:"projectid"`
+	Publicip              string                                             `json:"publicip"`
+	Publicipid            string                                             `json:"publicipid"`
+	Rootdeviceid          int64                                              `json:"rootdeviceid"`
+	Rootdevicetype        string                                             `json:"rootdevicetype"`
+	Securitygroup         []RemoveNicFromVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                             `json:"serviceofferingid"`
+	Serviceofferingname   string                                             `json:"serviceofferingname"`
+	Servicestate          string                                             `json:"servicestate"`
+	State                 string                                             `json:"state"`
+	Templatedisplaytext   string                                             `json:"templatedisplaytext"`
+	Templateid            string                                             `json:"templateid"`
+	Templatename          string                                             `json:"templatename"`
+	Userid                string                                             `json:"userid"`
+	Username              string                                             `json:"username"`
+	Vgpu                  string                                             `json:"vgpu"`
+	Zoneid                string                                             `json:"zoneid"`
+	Zonename              string                                             `json:"zonename"`
+}
+
+type RemoveNicFromVirtualMachineResponseSecuritygroup struct {
+	Account             string                                                 `json:"account"`
+	Description         string                                                 `json:"description"`
+	Domain              string                                                 `json:"domain"`
+	Domainid            string                                                 `json:"domainid"`
+	Egressrule          []RemoveNicFromVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                                 `json:"id"`
+	Ingressrule         []RemoveNicFromVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                                 `json:"name"`
+	Project             string                                                 `json:"project"`
+	Projectid           string                                                 `json:"projectid"`
+	Tags                []Tags                                                 `json:"tags"`
+	Virtualmachinecount int                                                    `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                          `json:"virtualmachineids"`
+}
+
+type RemoveNicFromVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type RemoveNicFromVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type ResetPasswordForVirtualMachineParams struct {
@@ -3729,173 +3117,111 @@
 }
 
 type ResetPasswordForVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                                `json:"jobid"`
+	Account               string                                                `json:"account"`
+	Affinitygroup         []ResetPasswordForVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                                   `json:"cpunumber"`
+	Cpuspeed              int                                                   `json:"cpuspeed"`
+	Cpuused               string                                                `json:"cpuused"`
+	Created               string                                                `json:"created"`
+	Details               map[string]string                                     `json:"details"`
+	Diskioread            int64                                                 `json:"diskioread"`
+	Diskiowrite           int64                                                 `json:"diskiowrite"`
+	Diskkbsread           int64                                                 `json:"diskkbsread"`
+	Diskkbswrite          int64                                                 `json:"diskkbswrite"`
+	Diskofferingid        string                                                `json:"diskofferingid"`
+	Diskofferingname      string                                                `json:"diskofferingname"`
+	Displayname           string                                                `json:"displayname"`
+	Displayvm             bool                                                  `json:"displayvm"`
+	Domain                string                                                `json:"domain"`
+	Domainid              string                                                `json:"domainid"`
+	Forvirtualnetwork     bool                                                  `json:"forvirtualnetwork"`
+	Group                 string                                                `json:"group"`
+	Groupid               string                                                `json:"groupid"`
+	Guestosid             string                                                `json:"guestosid"`
+	Haenable              bool                                                  `json:"haenable"`
+	Hostid                string                                                `json:"hostid"`
+	Hostname              string                                                `json:"hostname"`
+	Hypervisor            string                                                `json:"hypervisor"`
+	Id                    string                                                `json:"id"`
+	Instancename          string                                                `json:"instancename"`
+	Isdynamicallyscalable bool                                                  `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                                `json:"isodisplaytext"`
+	Isoid                 string                                                `json:"isoid"`
+	Isoname               string                                                `json:"isoname"`
+	Keypair               string                                                `json:"keypair"`
+	Memory                int                                                   `json:"memory"`
+	Memoryintfreekbs      int64                                                 `json:"memoryintfreekbs"`
+	Memorykbs             int64                                                 `json:"memorykbs"`
+	Memorytargetkbs       int64                                                 `json:"memorytargetkbs"`
+	Name                  string                                                `json:"name"`
+	Networkkbsread        int64                                                 `json:"networkkbsread"`
+	Networkkbswrite       int64                                                 `json:"networkkbswrite"`
+	Nic                   []Nic                                                 `json:"nic"`
+	Ostypeid              int64                                                 `json:"ostypeid"`
+	Password              string                                                `json:"password"`
+	Passwordenabled       bool                                                  `json:"passwordenabled"`
+	Project               string                                                `json:"project"`
+	Projectid             string                                                `json:"projectid"`
+	Publicip              string                                                `json:"publicip"`
+	Publicipid            string                                                `json:"publicipid"`
+	Rootdeviceid          int64                                                 `json:"rootdeviceid"`
+	Rootdevicetype        string                                                `json:"rootdevicetype"`
+	Securitygroup         []ResetPasswordForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                                `json:"serviceofferingid"`
+	Serviceofferingname   string                                                `json:"serviceofferingname"`
+	Servicestate          string                                                `json:"servicestate"`
+	State                 string                                                `json:"state"`
+	Templatedisplaytext   string                                                `json:"templatedisplaytext"`
+	Templateid            string                                                `json:"templateid"`
+	Templatename          string                                                `json:"templatename"`
+	Userid                string                                                `json:"userid"`
+	Username              string                                                `json:"username"`
+	Vgpu                  string                                                `json:"vgpu"`
+	Zoneid                string                                                `json:"zoneid"`
+	Zonename              string                                                `json:"zonename"`
+}
+
+type ResetPasswordForVirtualMachineResponseSecuritygroup struct {
+	Account             string                                                    `json:"account"`
+	Description         string                                                    `json:"description"`
+	Domain              string                                                    `json:"domain"`
+	Domainid            string                                                    `json:"domainid"`
+	Egressrule          []ResetPasswordForVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                                    `json:"id"`
+	Ingressrule         []ResetPasswordForVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                                    `json:"name"`
+	Project             string                                                    `json:"project"`
+	Projectid           string                                                    `json:"projectid"`
+	Tags                []Tags                                                    `json:"tags"`
+	Virtualmachinecount int                                                       `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                             `json:"virtualmachineids"`
+}
+
+type ResetPasswordForVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type ResetPasswordForVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type RestoreVirtualMachineParams struct {
@@ -3977,173 +3303,111 @@
 }
 
 type RestoreVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                       `json:"jobid"`
+	Account               string                                       `json:"account"`
+	Affinitygroup         []RestoreVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                          `json:"cpunumber"`
+	Cpuspeed              int                                          `json:"cpuspeed"`
+	Cpuused               string                                       `json:"cpuused"`
+	Created               string                                       `json:"created"`
+	Details               map[string]string                            `json:"details"`
+	Diskioread            int64                                        `json:"diskioread"`
+	Diskiowrite           int64                                        `json:"diskiowrite"`
+	Diskkbsread           int64                                        `json:"diskkbsread"`
+	Diskkbswrite          int64                                        `json:"diskkbswrite"`
+	Diskofferingid        string                                       `json:"diskofferingid"`
+	Diskofferingname      string                                       `json:"diskofferingname"`
+	Displayname           string                                       `json:"displayname"`
+	Displayvm             bool                                         `json:"displayvm"`
+	Domain                string                                       `json:"domain"`
+	Domainid              string                                       `json:"domainid"`
+	Forvirtualnetwork     bool                                         `json:"forvirtualnetwork"`
+	Group                 string                                       `json:"group"`
+	Groupid               string                                       `json:"groupid"`
+	Guestosid             string                                       `json:"guestosid"`
+	Haenable              bool                                         `json:"haenable"`
+	Hostid                string                                       `json:"hostid"`
+	Hostname              string                                       `json:"hostname"`
+	Hypervisor            string                                       `json:"hypervisor"`
+	Id                    string                                       `json:"id"`
+	Instancename          string                                       `json:"instancename"`
+	Isdynamicallyscalable bool                                         `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                       `json:"isodisplaytext"`
+	Isoid                 string                                       `json:"isoid"`
+	Isoname               string                                       `json:"isoname"`
+	Keypair               string                                       `json:"keypair"`
+	Memory                int                                          `json:"memory"`
+	Memoryintfreekbs      int64                                        `json:"memoryintfreekbs"`
+	Memorykbs             int64                                        `json:"memorykbs"`
+	Memorytargetkbs       int64                                        `json:"memorytargetkbs"`
+	Name                  string                                       `json:"name"`
+	Networkkbsread        int64                                        `json:"networkkbsread"`
+	Networkkbswrite       int64                                        `json:"networkkbswrite"`
+	Nic                   []Nic                                        `json:"nic"`
+	Ostypeid              int64                                        `json:"ostypeid"`
+	Password              string                                       `json:"password"`
+	Passwordenabled       bool                                         `json:"passwordenabled"`
+	Project               string                                       `json:"project"`
+	Projectid             string                                       `json:"projectid"`
+	Publicip              string                                       `json:"publicip"`
+	Publicipid            string                                       `json:"publicipid"`
+	Rootdeviceid          int64                                        `json:"rootdeviceid"`
+	Rootdevicetype        string                                       `json:"rootdevicetype"`
+	Securitygroup         []RestoreVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                       `json:"serviceofferingid"`
+	Serviceofferingname   string                                       `json:"serviceofferingname"`
+	Servicestate          string                                       `json:"servicestate"`
+	State                 string                                       `json:"state"`
+	Templatedisplaytext   string                                       `json:"templatedisplaytext"`
+	Templateid            string                                       `json:"templateid"`
+	Templatename          string                                       `json:"templatename"`
+	Userid                string                                       `json:"userid"`
+	Username              string                                       `json:"username"`
+	Vgpu                  string                                       `json:"vgpu"`
+	Zoneid                string                                       `json:"zoneid"`
+	Zonename              string                                       `json:"zonename"`
+}
+
+type RestoreVirtualMachineResponseSecuritygroup struct {
+	Account             string                                           `json:"account"`
+	Description         string                                           `json:"description"`
+	Domain              string                                           `json:"domain"`
+	Domainid            string                                           `json:"domainid"`
+	Egressrule          []RestoreVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                           `json:"id"`
+	Ingressrule         []RestoreVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                           `json:"name"`
+	Project             string                                           `json:"project"`
+	Projectid           string                                           `json:"projectid"`
+	Tags                []Tags                                           `json:"tags"`
+	Virtualmachinecount int                                              `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                    `json:"virtualmachineids"`
+}
+
+type RestoreVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type RestoreVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type ScaleVirtualMachineParams struct {
@@ -4331,173 +3595,111 @@
 }
 
 type StartVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                     `json:"jobid"`
+	Account               string                                     `json:"account"`
+	Affinitygroup         []StartVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                        `json:"cpunumber"`
+	Cpuspeed              int                                        `json:"cpuspeed"`
+	Cpuused               string                                     `json:"cpuused"`
+	Created               string                                     `json:"created"`
+	Details               map[string]string                          `json:"details"`
+	Diskioread            int64                                      `json:"diskioread"`
+	Diskiowrite           int64                                      `json:"diskiowrite"`
+	Diskkbsread           int64                                      `json:"diskkbsread"`
+	Diskkbswrite          int64                                      `json:"diskkbswrite"`
+	Diskofferingid        string                                     `json:"diskofferingid"`
+	Diskofferingname      string                                     `json:"diskofferingname"`
+	Displayname           string                                     `json:"displayname"`
+	Displayvm             bool                                       `json:"displayvm"`
+	Domain                string                                     `json:"domain"`
+	Domainid              string                                     `json:"domainid"`
+	Forvirtualnetwork     bool                                       `json:"forvirtualnetwork"`
+	Group                 string                                     `json:"group"`
+	Groupid               string                                     `json:"groupid"`
+	Guestosid             string                                     `json:"guestosid"`
+	Haenable              bool                                       `json:"haenable"`
+	Hostid                string                                     `json:"hostid"`
+	Hostname              string                                     `json:"hostname"`
+	Hypervisor            string                                     `json:"hypervisor"`
+	Id                    string                                     `json:"id"`
+	Instancename          string                                     `json:"instancename"`
+	Isdynamicallyscalable bool                                       `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                     `json:"isodisplaytext"`
+	Isoid                 string                                     `json:"isoid"`
+	Isoname               string                                     `json:"isoname"`
+	Keypair               string                                     `json:"keypair"`
+	Memory                int                                        `json:"memory"`
+	Memoryintfreekbs      int64                                      `json:"memoryintfreekbs"`
+	Memorykbs             int64                                      `json:"memorykbs"`
+	Memorytargetkbs       int64                                      `json:"memorytargetkbs"`
+	Name                  string                                     `json:"name"`
+	Networkkbsread        int64                                      `json:"networkkbsread"`
+	Networkkbswrite       int64                                      `json:"networkkbswrite"`
+	Nic                   []Nic                                      `json:"nic"`
+	Ostypeid              int64                                      `json:"ostypeid"`
+	Password              string                                     `json:"password"`
+	Passwordenabled       bool                                       `json:"passwordenabled"`
+	Project               string                                     `json:"project"`
+	Projectid             string                                     `json:"projectid"`
+	Publicip              string                                     `json:"publicip"`
+	Publicipid            string                                     `json:"publicipid"`
+	Rootdeviceid          int64                                      `json:"rootdeviceid"`
+	Rootdevicetype        string                                     `json:"rootdevicetype"`
+	Securitygroup         []StartVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                     `json:"serviceofferingid"`
+	Serviceofferingname   string                                     `json:"serviceofferingname"`
+	Servicestate          string                                     `json:"servicestate"`
+	State                 string                                     `json:"state"`
+	Templatedisplaytext   string                                     `json:"templatedisplaytext"`
+	Templateid            string                                     `json:"templateid"`
+	Templatename          string                                     `json:"templatename"`
+	Userid                string                                     `json:"userid"`
+	Username              string                                     `json:"username"`
+	Vgpu                  string                                     `json:"vgpu"`
+	Zoneid                string                                     `json:"zoneid"`
+	Zonename              string                                     `json:"zonename"`
+}
+
+type StartVirtualMachineResponseSecuritygroup struct {
+	Account             string                                         `json:"account"`
+	Description         string                                         `json:"description"`
+	Domain              string                                         `json:"domain"`
+	Domainid            string                                         `json:"domainid"`
+	Egressrule          []StartVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                         `json:"id"`
+	Ingressrule         []StartVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                         `json:"name"`
+	Project             string                                         `json:"project"`
+	Projectid           string                                         `json:"projectid"`
+	Tags                []Tags                                         `json:"tags"`
+	Virtualmachinecount int                                            `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                  `json:"virtualmachineids"`
+}
+
+type StartVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type StartVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type StopVirtualMachineParams struct {
@@ -4580,173 +3782,111 @@
 }
 
 type StopVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                    `json:"jobid"`
+	Account               string                                    `json:"account"`
+	Affinitygroup         []StopVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                       `json:"cpunumber"`
+	Cpuspeed              int                                       `json:"cpuspeed"`
+	Cpuused               string                                    `json:"cpuused"`
+	Created               string                                    `json:"created"`
+	Details               map[string]string                         `json:"details"`
+	Diskioread            int64                                     `json:"diskioread"`
+	Diskiowrite           int64                                     `json:"diskiowrite"`
+	Diskkbsread           int64                                     `json:"diskkbsread"`
+	Diskkbswrite          int64                                     `json:"diskkbswrite"`
+	Diskofferingid        string                                    `json:"diskofferingid"`
+	Diskofferingname      string                                    `json:"diskofferingname"`
+	Displayname           string                                    `json:"displayname"`
+	Displayvm             bool                                      `json:"displayvm"`
+	Domain                string                                    `json:"domain"`
+	Domainid              string                                    `json:"domainid"`
+	Forvirtualnetwork     bool                                      `json:"forvirtualnetwork"`
+	Group                 string                                    `json:"group"`
+	Groupid               string                                    `json:"groupid"`
+	Guestosid             string                                    `json:"guestosid"`
+	Haenable              bool                                      `json:"haenable"`
+	Hostid                string                                    `json:"hostid"`
+	Hostname              string                                    `json:"hostname"`
+	Hypervisor            string                                    `json:"hypervisor"`
+	Id                    string                                    `json:"id"`
+	Instancename          string                                    `json:"instancename"`
+	Isdynamicallyscalable bool                                      `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                    `json:"isodisplaytext"`
+	Isoid                 string                                    `json:"isoid"`
+	Isoname               string                                    `json:"isoname"`
+	Keypair               string                                    `json:"keypair"`
+	Memory                int                                       `json:"memory"`
+	Memoryintfreekbs      int64                                     `json:"memoryintfreekbs"`
+	Memorykbs             int64                                     `json:"memorykbs"`
+	Memorytargetkbs       int64                                     `json:"memorytargetkbs"`
+	Name                  string                                    `json:"name"`
+	Networkkbsread        int64                                     `json:"networkkbsread"`
+	Networkkbswrite       int64                                     `json:"networkkbswrite"`
+	Nic                   []Nic                                     `json:"nic"`
+	Ostypeid              int64                                     `json:"ostypeid"`
+	Password              string                                    `json:"password"`
+	Passwordenabled       bool                                      `json:"passwordenabled"`
+	Project               string                                    `json:"project"`
+	Projectid             string                                    `json:"projectid"`
+	Publicip              string                                    `json:"publicip"`
+	Publicipid            string                                    `json:"publicipid"`
+	Rootdeviceid          int64                                     `json:"rootdeviceid"`
+	Rootdevicetype        string                                    `json:"rootdevicetype"`
+	Securitygroup         []StopVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                    `json:"serviceofferingid"`
+	Serviceofferingname   string                                    `json:"serviceofferingname"`
+	Servicestate          string                                    `json:"servicestate"`
+	State                 string                                    `json:"state"`
+	Templatedisplaytext   string                                    `json:"templatedisplaytext"`
+	Templateid            string                                    `json:"templateid"`
+	Templatename          string                                    `json:"templatename"`
+	Userid                string                                    `json:"userid"`
+	Username              string                                    `json:"username"`
+	Vgpu                  string                                    `json:"vgpu"`
+	Zoneid                string                                    `json:"zoneid"`
+	Zonename              string                                    `json:"zonename"`
+}
+
+type StopVirtualMachineResponseSecuritygroup struct {
+	Account             string                                        `json:"account"`
+	Description         string                                        `json:"description"`
+	Domain              string                                        `json:"domain"`
+	Domainid            string                                        `json:"domainid"`
+	Egressrule          []StopVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                        `json:"id"`
+	Ingressrule         []StopVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                        `json:"name"`
+	Project             string                                        `json:"project"`
+	Projectid           string                                        `json:"projectid"`
+	Tags                []Tags                                        `json:"tags"`
+	Virtualmachinecount int                                           `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                 `json:"virtualmachineids"`
+}
+
+type StopVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type StopVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type UpdateDefaultNicForVirtualMachineParams struct {
@@ -4829,173 +3969,111 @@
 }
 
 type UpdateDefaultNicForVirtualMachineResponse struct {
-	JobID         string `json:"jobid"`
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	JobID                 string                                                   `json:"jobid"`
+	Account               string                                                   `json:"account"`
+	Affinitygroup         []UpdateDefaultNicForVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                                      `json:"cpunumber"`
+	Cpuspeed              int                                                      `json:"cpuspeed"`
+	Cpuused               string                                                   `json:"cpuused"`
+	Created               string                                                   `json:"created"`
+	Details               map[string]string                                        `json:"details"`
+	Diskioread            int64                                                    `json:"diskioread"`
+	Diskiowrite           int64                                                    `json:"diskiowrite"`
+	Diskkbsread           int64                                                    `json:"diskkbsread"`
+	Diskkbswrite          int64                                                    `json:"diskkbswrite"`
+	Diskofferingid        string                                                   `json:"diskofferingid"`
+	Diskofferingname      string                                                   `json:"diskofferingname"`
+	Displayname           string                                                   `json:"displayname"`
+	Displayvm             bool                                                     `json:"displayvm"`
+	Domain                string                                                   `json:"domain"`
+	Domainid              string                                                   `json:"domainid"`
+	Forvirtualnetwork     bool                                                     `json:"forvirtualnetwork"`
+	Group                 string                                                   `json:"group"`
+	Groupid               string                                                   `json:"groupid"`
+	Guestosid             string                                                   `json:"guestosid"`
+	Haenable              bool                                                     `json:"haenable"`
+	Hostid                string                                                   `json:"hostid"`
+	Hostname              string                                                   `json:"hostname"`
+	Hypervisor            string                                                   `json:"hypervisor"`
+	Id                    string                                                   `json:"id"`
+	Instancename          string                                                   `json:"instancename"`
+	Isdynamicallyscalable bool                                                     `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                                   `json:"isodisplaytext"`
+	Isoid                 string                                                   `json:"isoid"`
+	Isoname               string                                                   `json:"isoname"`
+	Keypair               string                                                   `json:"keypair"`
+	Memory                int                                                      `json:"memory"`
+	Memoryintfreekbs      int64                                                    `json:"memoryintfreekbs"`
+	Memorykbs             int64                                                    `json:"memorykbs"`
+	Memorytargetkbs       int64                                                    `json:"memorytargetkbs"`
+	Name                  string                                                   `json:"name"`
+	Networkkbsread        int64                                                    `json:"networkkbsread"`
+	Networkkbswrite       int64                                                    `json:"networkkbswrite"`
+	Nic                   []Nic                                                    `json:"nic"`
+	Ostypeid              int64                                                    `json:"ostypeid"`
+	Password              string                                                   `json:"password"`
+	Passwordenabled       bool                                                     `json:"passwordenabled"`
+	Project               string                                                   `json:"project"`
+	Projectid             string                                                   `json:"projectid"`
+	Publicip              string                                                   `json:"publicip"`
+	Publicipid            string                                                   `json:"publicipid"`
+	Rootdeviceid          int64                                                    `json:"rootdeviceid"`
+	Rootdevicetype        string                                                   `json:"rootdevicetype"`
+	Securitygroup         []UpdateDefaultNicForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                                   `json:"serviceofferingid"`
+	Serviceofferingname   string                                                   `json:"serviceofferingname"`
+	Servicestate          string                                                   `json:"servicestate"`
+	State                 string                                                   `json:"state"`
+	Templatedisplaytext   string                                                   `json:"templatedisplaytext"`
+	Templateid            string                                                   `json:"templateid"`
+	Templatename          string                                                   `json:"templatename"`
+	Userid                string                                                   `json:"userid"`
+	Username              string                                                   `json:"username"`
+	Vgpu                  string                                                   `json:"vgpu"`
+	Zoneid                string                                                   `json:"zoneid"`
+	Zonename              string                                                   `json:"zonename"`
+}
+
+type UpdateDefaultNicForVirtualMachineResponseSecuritygroup struct {
+	Account             string                                                       `json:"account"`
+	Description         string                                                       `json:"description"`
+	Domain              string                                                       `json:"domain"`
+	Domainid            string                                                       `json:"domainid"`
+	Egressrule          []UpdateDefaultNicForVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                                       `json:"id"`
+	Ingressrule         []UpdateDefaultNicForVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                                       `json:"name"`
+	Project             string                                                       `json:"project"`
+	Projectid           string                                                       `json:"projectid"`
+	Tags                []Tags                                                       `json:"tags"`
+	Virtualmachinecount int                                                          `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                                `json:"virtualmachineids"`
+}
+
+type UpdateDefaultNicForVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type UpdateDefaultNicForVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
 
 type UpdateVirtualMachineParams struct {
@@ -5007,6 +4085,10 @@
 	if p.p == nil {
 		return u
 	}
+	if v, found := p.p["cleanupdetails"]; found {
+		vv := strconv.FormatBool(v.(bool))
+		u.Set("cleanupdetails", vv)
+	}
 	if v, found := p.p["customid"]; found {
 		u.Set("customid", v.(string))
 	}
@@ -5017,6 +4099,14 @@
 			i++
 		}
 	}
+	if v, found := p.p["dhcpoptionsnetworklist"]; found {
+		i := 0
+		for k, vv := range v.(map[string]string) {
+			u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].key", i), k)
+			u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].value", i), vv)
+			i++
+		}
+	}
 	if v, found := p.p["displayname"]; found {
 		u.Set("displayname", v.(string))
 	}
@@ -5061,6 +4151,14 @@
 	return u
 }
 
+func (p *UpdateVirtualMachineParams) SetCleanupdetails(v bool) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["cleanupdetails"] = v
+	return
+}
+
 func (p *UpdateVirtualMachineParams) SetCustomid(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -5077,6 +4175,14 @@
 	return
 }
 
+func (p *UpdateVirtualMachineParams) SetDhcpoptionsnetworklist(v map[string]string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["dhcpoptionsnetworklist"] = v
+	return
+}
+
 func (p *UpdateVirtualMachineParams) SetDisplayname(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -5198,170 +4304,108 @@
 }
 
 type UpdateVirtualMachineResponse struct {
-	Account       string `json:"account"`
-	Affinitygroup []struct {
-		Account           string   `json:"account"`
-		Description       string   `json:"description"`
-		Domain            string   `json:"domain"`
-		Domainid          string   `json:"domainid"`
-		Id                string   `json:"id"`
-		Name              string   `json:"name"`
-		Project           string   `json:"project"`
-		Projectid         string   `json:"projectid"`
-		Type              string   `json:"type"`
-		VirtualmachineIds []string `json:"virtualmachineIds"`
-	} `json:"affinitygroup"`
-	Cpunumber             int               `json:"cpunumber"`
-	Cpuspeed              int               `json:"cpuspeed"`
-	Cpuused               string            `json:"cpuused"`
-	Created               string            `json:"created"`
-	Details               map[string]string `json:"details"`
-	Diskioread            int64             `json:"diskioread"`
-	Diskiowrite           int64             `json:"diskiowrite"`
-	Diskkbsread           int64             `json:"diskkbsread"`
-	Diskkbswrite          int64             `json:"diskkbswrite"`
-	Diskofferingid        string            `json:"diskofferingid"`
-	Diskofferingname      string            `json:"diskofferingname"`
-	Displayname           string            `json:"displayname"`
-	Displayvm             bool              `json:"displayvm"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Forvirtualnetwork     bool              `json:"forvirtualnetwork"`
-	Group                 string            `json:"group"`
-	Groupid               string            `json:"groupid"`
-	Guestosid             string            `json:"guestosid"`
-	Haenable              bool              `json:"haenable"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Instancename          string            `json:"instancename"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isodisplaytext        string            `json:"isodisplaytext"`
-	Isoid                 string            `json:"isoid"`
-	Isoname               string            `json:"isoname"`
-	Keypair               string            `json:"keypair"`
-	Memory                int               `json:"memory"`
-	Memoryintfreekbs      int64             `json:"memoryintfreekbs"`
-	Memorykbs             int64             `json:"memorykbs"`
-	Memorytargetkbs       int64             `json:"memorytargetkbs"`
-	Name                  string            `json:"name"`
-	Networkkbsread        int64             `json:"networkkbsread"`
-	Networkkbswrite       int64             `json:"networkkbswrite"`
-	Nic                   []struct {
-		Broadcasturi         string `json:"broadcasturi"`
-		Deviceid             string `json:"deviceid"`
-		Gateway              string `json:"gateway"`
-		Id                   string `json:"id"`
-		Ip6address           string `json:"ip6address"`
-		Ip6cidr              string `json:"ip6cidr"`
-		Ip6gateway           string `json:"ip6gateway"`
-		Ipaddress            string `json:"ipaddress"`
-		Isdefault            bool   `json:"isdefault"`
-		Isolationuri         string `json:"isolationuri"`
-		Macaddress           string `json:"macaddress"`
-		Netmask              string `json:"netmask"`
-		Networkid            string `json:"networkid"`
-		Networkname          string `json:"networkname"`
-		Nsxlogicalswitch     string `json:"nsxlogicalswitch"`
-		Nsxlogicalswitchport string `json:"nsxlogicalswitchport"`
-		Secondaryip          []struct {
-			Id        string `json:"id"`
-			Ipaddress string `json:"ipaddress"`
-		} `json:"secondaryip"`
-		Traffictype      string `json:"traffictype"`
-		Type             string `json:"type"`
-		Virtualmachineid string `json:"virtualmachineid"`
-	} `json:"nic"`
-	Ostypeid        int64  `json:"ostypeid"`
-	Password        string `json:"password"`
-	Passwordenabled bool   `json:"passwordenabled"`
-	Project         string `json:"project"`
-	Projectid       string `json:"projectid"`
-	Publicip        string `json:"publicip"`
-	Publicipid      string `json:"publicipid"`
-	Rootdeviceid    int64  `json:"rootdeviceid"`
-	Rootdevicetype  string `json:"rootdevicetype"`
-	Securitygroup   []struct {
-		Account     string `json:"account"`
-		Description string `json:"description"`
-		Domain      string `json:"domain"`
-		Domainid    string `json:"domainid"`
-		Egressrule  []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"egressrule"`
-		Id          string `json:"id"`
-		Ingressrule []struct {
-			Account           string `json:"account"`
-			Cidr              string `json:"cidr"`
-			Endport           int    `json:"endport"`
-			Icmpcode          int    `json:"icmpcode"`
-			Icmptype          int    `json:"icmptype"`
-			Protocol          string `json:"protocol"`
-			Ruleid            string `json:"ruleid"`
-			Securitygroupname string `json:"securitygroupname"`
-			Startport         int    `json:"startport"`
-			Tags              []struct {
-				Account      string `json:"account"`
-				Customer     string `json:"customer"`
-				Domain       string `json:"domain"`
-				Domainid     string `json:"domainid"`
-				Key          string `json:"key"`
-				Project      string `json:"project"`
-				Projectid    string `json:"projectid"`
-				Resourceid   string `json:"resourceid"`
-				Resourcetype string `json:"resourcetype"`
-				Value        string `json:"value"`
-			} `json:"tags"`
-		} `json:"ingressrule"`
-		Name      string `json:"name"`
-		Project   string `json:"project"`
-		Projectid string `json:"projectid"`
-		Tags      []struct {
-			Account      string `json:"account"`
-			Customer     string `json:"customer"`
-			Domain       string `json:"domain"`
-			Domainid     string `json:"domainid"`
-			Key          string `json:"key"`
-			Project      string `json:"project"`
-			Projectid    string `json:"projectid"`
-			Resourceid   string `json:"resourceid"`
-			Resourcetype string `json:"resourcetype"`
-			Value        string `json:"value"`
-		} `json:"tags"`
-		Virtualmachinecount int           `json:"virtualmachinecount"`
-		Virtualmachineids   []interface{} `json:"virtualmachineids"`
-	} `json:"securitygroup"`
-	Serviceofferingid   string `json:"serviceofferingid"`
-	Serviceofferingname string `json:"serviceofferingname"`
-	Servicestate        string `json:"servicestate"`
-	State               string `json:"state"`
-	Templatedisplaytext string `json:"templatedisplaytext"`
-	Templateid          string `json:"templateid"`
-	Templatename        string `json:"templatename"`
-	Userid              string `json:"userid"`
-	Username            string `json:"username"`
-	Vgpu                string `json:"vgpu"`
-	Zoneid              string `json:"zoneid"`
-	Zonename            string `json:"zonename"`
+	Account               string                                      `json:"account"`
+	Affinitygroup         []UpdateVirtualMachineResponseAffinitygroup `json:"affinitygroup"`
+	Cpunumber             int                                         `json:"cpunumber"`
+	Cpuspeed              int                                         `json:"cpuspeed"`
+	Cpuused               string                                      `json:"cpuused"`
+	Created               string                                      `json:"created"`
+	Details               map[string]string                           `json:"details"`
+	Diskioread            int64                                       `json:"diskioread"`
+	Diskiowrite           int64                                       `json:"diskiowrite"`
+	Diskkbsread           int64                                       `json:"diskkbsread"`
+	Diskkbswrite          int64                                       `json:"diskkbswrite"`
+	Diskofferingid        string                                      `json:"diskofferingid"`
+	Diskofferingname      string                                      `json:"diskofferingname"`
+	Displayname           string                                      `json:"displayname"`
+	Displayvm             bool                                        `json:"displayvm"`
+	Domain                string                                      `json:"domain"`
+	Domainid              string                                      `json:"domainid"`
+	Forvirtualnetwork     bool                                        `json:"forvirtualnetwork"`
+	Group                 string                                      `json:"group"`
+	Groupid               string                                      `json:"groupid"`
+	Guestosid             string                                      `json:"guestosid"`
+	Haenable              bool                                        `json:"haenable"`
+	Hostid                string                                      `json:"hostid"`
+	Hostname              string                                      `json:"hostname"`
+	Hypervisor            string                                      `json:"hypervisor"`
+	Id                    string                                      `json:"id"`
+	Instancename          string                                      `json:"instancename"`
+	Isdynamicallyscalable bool                                        `json:"isdynamicallyscalable"`
+	Isodisplaytext        string                                      `json:"isodisplaytext"`
+	Isoid                 string                                      `json:"isoid"`
+	Isoname               string                                      `json:"isoname"`
+	Keypair               string                                      `json:"keypair"`
+	Memory                int                                         `json:"memory"`
+	Memoryintfreekbs      int64                                       `json:"memoryintfreekbs"`
+	Memorykbs             int64                                       `json:"memorykbs"`
+	Memorytargetkbs       int64                                       `json:"memorytargetkbs"`
+	Name                  string                                      `json:"name"`
+	Networkkbsread        int64                                       `json:"networkkbsread"`
+	Networkkbswrite       int64                                       `json:"networkkbswrite"`
+	Nic                   []Nic                                       `json:"nic"`
+	Ostypeid              int64                                       `json:"ostypeid"`
+	Password              string                                      `json:"password"`
+	Passwordenabled       bool                                        `json:"passwordenabled"`
+	Project               string                                      `json:"project"`
+	Projectid             string                                      `json:"projectid"`
+	Publicip              string                                      `json:"publicip"`
+	Publicipid            string                                      `json:"publicipid"`
+	Rootdeviceid          int64                                       `json:"rootdeviceid"`
+	Rootdevicetype        string                                      `json:"rootdevicetype"`
+	Securitygroup         []UpdateVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+	Serviceofferingid     string                                      `json:"serviceofferingid"`
+	Serviceofferingname   string                                      `json:"serviceofferingname"`
+	Servicestate          string                                      `json:"servicestate"`
+	State                 string                                      `json:"state"`
+	Templatedisplaytext   string                                      `json:"templatedisplaytext"`
+	Templateid            string                                      `json:"templateid"`
+	Templatename          string                                      `json:"templatename"`
+	Userid                string                                      `json:"userid"`
+	Username              string                                      `json:"username"`
+	Vgpu                  string                                      `json:"vgpu"`
+	Zoneid                string                                      `json:"zoneid"`
+	Zonename              string                                      `json:"zonename"`
+}
+
+type UpdateVirtualMachineResponseSecuritygroup struct {
+	Account             string                                          `json:"account"`
+	Description         string                                          `json:"description"`
+	Domain              string                                          `json:"domain"`
+	Domainid            string                                          `json:"domainid"`
+	Egressrule          []UpdateVirtualMachineResponseSecuritygroupRule `json:"egressrule"`
+	Id                  string                                          `json:"id"`
+	Ingressrule         []UpdateVirtualMachineResponseSecuritygroupRule `json:"ingressrule"`
+	Name                string                                          `json:"name"`
+	Project             string                                          `json:"project"`
+	Projectid           string                                          `json:"projectid"`
+	Tags                []Tags                                          `json:"tags"`
+	Virtualmachinecount int                                             `json:"virtualmachinecount"`
+	Virtualmachineids   []interface{}                                   `json:"virtualmachineids"`
+}
+
+type UpdateVirtualMachineResponseSecuritygroupRule struct {
+	Account           string `json:"account"`
+	Cidr              string `json:"cidr"`
+	Endport           int    `json:"endport"`
+	Icmpcode          int    `json:"icmpcode"`
+	Icmptype          int    `json:"icmptype"`
+	Protocol          string `json:"protocol"`
+	Ruleid            string `json:"ruleid"`
+	Securitygroupname string `json:"securitygroupname"`
+	Startport         int    `json:"startport"`
+	Tags              []Tags `json:"tags"`
+}
+
+type UpdateVirtualMachineResponseAffinitygroup struct {
+	Account           string   `json:"account"`
+	Description       string   `json:"description"`
+	Domain            string   `json:"domain"`
+	Domainid          string   `json:"domainid"`
+	Id                string   `json:"id"`
+	Name              string   `json:"name"`
+	Project           string   `json:"project"`
+	Projectid         string   `json:"projectid"`
+	Type              string   `json:"type"`
+	VirtualmachineIds []string `json:"virtualmachineIds"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VolumeService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VolumeService.go
index ab96f16..e7cf73f 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/VolumeService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/VolumeService.go
@@ -120,6 +120,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -143,6 +145,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -161,7 +166,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
@@ -376,6 +383,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -399,6 +408,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -417,7 +429,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
@@ -474,7 +488,26 @@
 
 type DeleteVolumeResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteVolumeResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteVolumeResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DetachVolumeParams struct {
@@ -571,6 +604,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -594,6 +629,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -612,7 +650,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
@@ -791,69 +831,6 @@
 	Path string `json:"path"`
 }
 
-type GetSolidFireVolumeAccessGroupIdParams struct {
-	p map[string]interface{}
-}
-
-func (p *GetSolidFireVolumeAccessGroupIdParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["clusterid"]; found {
-		u.Set("clusterid", v.(string))
-	}
-	if v, found := p.p["storageid"]; found {
-		u.Set("storageid", v.(string))
-	}
-	return u
-}
-
-func (p *GetSolidFireVolumeAccessGroupIdParams) SetClusterid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["clusterid"] = v
-	return
-}
-
-func (p *GetSolidFireVolumeAccessGroupIdParams) SetStorageid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["storageid"] = v
-	return
-}
-
-// You should always use this function to get a new GetSolidFireVolumeAccessGroupIdParams instance,
-// as then you are sure you have configured all required params
-func (s *VolumeService) NewGetSolidFireVolumeAccessGroupIdParams(clusterid string, storageid string) *GetSolidFireVolumeAccessGroupIdParams {
-	p := &GetSolidFireVolumeAccessGroupIdParams{}
-	p.p = make(map[string]interface{})
-	p.p["clusterid"] = clusterid
-	p.p["storageid"] = storageid
-	return p
-}
-
-// Get the SF Volume Access Group ID
-func (s *VolumeService) GetSolidFireVolumeAccessGroupId(p *GetSolidFireVolumeAccessGroupIdParams) (*GetSolidFireVolumeAccessGroupIdResponse, error) {
-	resp, err := s.cs.newRequest("getSolidFireVolumeAccessGroupId", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r GetSolidFireVolumeAccessGroupIdResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type GetSolidFireVolumeAccessGroupIdResponse struct {
-	SolidFireVolumeAccessGroupId int64 `json:"solidFireVolumeAccessGroupId"`
-}
-
 type GetSolidFireVolumeSizeParams struct {
 	p map[string]interface{}
 }
@@ -1113,6 +1090,9 @@
 	if v, found := p.p["account"]; found {
 		u.Set("account", v.(string))
 	}
+	if v, found := p.p["clusterid"]; found {
+		u.Set("clusterid", v.(string))
+	}
 	if v, found := p.p["diskofferingid"]; found {
 		u.Set("diskofferingid", v.(string))
 	}
@@ -1192,6 +1172,14 @@
 	return
 }
 
+func (p *ListVolumesParams) SetClusterid(v string) {
+	if p.p == nil {
+		p.p = make(map[string]interface{})
+	}
+	p.p["clusterid"] = v
+	return
+}
+
 func (p *ListVolumesParams) SetDiskofferingid(v string) {
 	if p.p == nil {
 		p.p = make(map[string]interface{})
@@ -1459,6 +1447,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -1482,6 +1472,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -1500,7 +1493,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
@@ -1604,6 +1599,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -1627,6 +1624,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -1645,7 +1645,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
@@ -1784,6 +1786,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -1807,6 +1811,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -1825,7 +1832,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
@@ -1971,6 +1980,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -1994,6 +2005,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -2012,7 +2026,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
@@ -2194,6 +2210,8 @@
 	Account                    string `json:"account"`
 	Attached                   string `json:"attached"`
 	Chaininfo                  string `json:"chaininfo"`
+	Clusterid                  string `json:"clusterid"`
+	Clustername                string `json:"clustername"`
 	Created                    string `json:"created"`
 	Destroyed                  bool   `json:"destroyed"`
 	Deviceid                   int64  `json:"deviceid"`
@@ -2217,6 +2235,9 @@
 	Miniops                    int64  `json:"miniops"`
 	Name                       string `json:"name"`
 	Path                       string `json:"path"`
+	Physicalsize               int64  `json:"physicalsize"`
+	Podid                      string `json:"podid"`
+	Podname                    string `json:"podname"`
 	Project                    string `json:"project"`
 	Projectid                  string `json:"projectid"`
 	Provisioningtype           string `json:"provisioningtype"`
@@ -2235,7 +2256,9 @@
 	Templateid                 string `json:"templateid"`
 	Templatename               string `json:"templatename"`
 	Type                       string `json:"type"`
+	Utilization                string `json:"utilization"`
 	Virtualmachineid           string `json:"virtualmachineid"`
+	Virtualsize                int64  `json:"virtualsize"`
 	Vmdisplayname              string `json:"vmdisplayname"`
 	Vmname                     string `json:"vmname"`
 	Vmstate                    string `json:"vmstate"`
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ZoneService.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ZoneService.go
index 2f62008..1d8029d 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/ZoneService.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/ZoneService.go
@@ -24,106 +24,6 @@
 	"strings"
 )
 
-type AddVmwareDcParams struct {
-	p map[string]interface{}
-}
-
-func (p *AddVmwareDcParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["name"]; found {
-		u.Set("name", v.(string))
-	}
-	if v, found := p.p["password"]; found {
-		u.Set("password", v.(string))
-	}
-	if v, found := p.p["username"]; found {
-		u.Set("username", v.(string))
-	}
-	if v, found := p.p["vcenter"]; found {
-		u.Set("vcenter", v.(string))
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *AddVmwareDcParams) SetName(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["name"] = v
-	return
-}
-
-func (p *AddVmwareDcParams) SetPassword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["password"] = v
-	return
-}
-
-func (p *AddVmwareDcParams) SetUsername(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["username"] = v
-	return
-}
-
-func (p *AddVmwareDcParams) SetVcenter(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["vcenter"] = v
-	return
-}
-
-func (p *AddVmwareDcParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new AddVmwareDcParams instance,
-// as then you are sure you have configured all required params
-func (s *ZoneService) NewAddVmwareDcParams(name string, vcenter string, zoneid string) *AddVmwareDcParams {
-	p := &AddVmwareDcParams{}
-	p.p = make(map[string]interface{})
-	p.p["name"] = name
-	p.p["vcenter"] = vcenter
-	p.p["zoneid"] = zoneid
-	return p
-}
-
-// Adds a VMware datacenter to specified zone
-func (s *ZoneService) AddVmwareDc(p *AddVmwareDcParams) (*AddVmwareDcResponse, error) {
-	resp, err := s.cs.newRequest("addVmwareDc", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r AddVmwareDcResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type AddVmwareDcResponse struct {
-	Id      string `json:"id"`
-	Name    string `json:"name"`
-	Vcenter string `json:"vcenter"`
-	Zoneid  int64  `json:"zoneid"`
-}
-
 type CreateZoneParams struct {
 	p map[string]interface{}
 }
@@ -320,51 +220,44 @@
 }
 
 type CreateZoneResponse struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
-	Description           string            `json:"description"`
-	Dhcpprovider          string            `json:"dhcpprovider"`
-	Displaytext           string            `json:"displaytext"`
-	Dns1                  string            `json:"dns1"`
-	Dns2                  string            `json:"dns2"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Domainname            string            `json:"domainname"`
-	Guestcidraddress      string            `json:"guestcidraddress"`
-	Id                    string            `json:"id"`
-	Internaldns1          string            `json:"internaldns1"`
-	Internaldns2          string            `json:"internaldns2"`
-	Ip6dns1               string            `json:"ip6dns1"`
-	Ip6dns2               string            `json:"ip6dns2"`
-	Localstorageenabled   bool              `json:"localstorageenabled"`
-	Name                  string            `json:"name"`
-	Networktype           string            `json:"networktype"`
-	Resourcedetails       map[string]string `json:"resourcedetails"`
-	Securitygroupsenabled bool              `json:"securitygroupsenabled"`
-	Tags                  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Zonetoken string `json:"zonetoken"`
+	Allocationstate       string                       `json:"allocationstate"`
+	Capacity              []CreateZoneResponseCapacity `json:"capacity"`
+	Description           string                       `json:"description"`
+	Dhcpprovider          string                       `json:"dhcpprovider"`
+	Displaytext           string                       `json:"displaytext"`
+	Dns1                  string                       `json:"dns1"`
+	Dns2                  string                       `json:"dns2"`
+	Domain                string                       `json:"domain"`
+	Domainid              string                       `json:"domainid"`
+	Domainname            string                       `json:"domainname"`
+	Guestcidraddress      string                       `json:"guestcidraddress"`
+	Id                    string                       `json:"id"`
+	Internaldns1          string                       `json:"internaldns1"`
+	Internaldns2          string                       `json:"internaldns2"`
+	Ip6dns1               string                       `json:"ip6dns1"`
+	Ip6dns2               string                       `json:"ip6dns2"`
+	Localstorageenabled   bool                         `json:"localstorageenabled"`
+	Name                  string                       `json:"name"`
+	Networktype           string                       `json:"networktype"`
+	Resourcedetails       map[string]string            `json:"resourcedetails"`
+	Securitygroupsenabled bool                         `json:"securitygroupsenabled"`
+	Tags                  []Tags                       `json:"tags"`
+	Zonetoken             string                       `json:"zonetoken"`
+}
+
+type CreateZoneResponseCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
 
 type DedicateZoneParams struct {
@@ -516,7 +409,26 @@
 
 type DeleteZoneResponse struct {
 	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
+	Success     bool   `json:"success"`
+}
+
+func (r *DeleteZoneResponse) UnmarshalJSON(b []byte) error {
+	var m map[string]interface{}
+	err := json.Unmarshal(b, &m)
+	if err != nil {
+		return err
+	}
+
+	if success, ok := m["success"].(string); ok {
+		m["success"] = success == "true"
+		b, err = json.Marshal(m)
+		if err != nil {
+			return err
+		}
+	}
+
+	type alias DeleteZoneResponse
+	return json.Unmarshal(b, (*alias)(r))
 }
 
 type DisableOutOfBandManagementForZoneParams struct {
@@ -811,137 +723,6 @@
 	Zonename        string `json:"zonename"`
 }
 
-type ListVmwareDcsParams struct {
-	p map[string]interface{}
-}
-
-func (p *ListVmwareDcsParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["keyword"]; found {
-		u.Set("keyword", v.(string))
-	}
-	if v, found := p.p["page"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("page", vv)
-	}
-	if v, found := p.p["pagesize"]; found {
-		vv := strconv.Itoa(v.(int))
-		u.Set("pagesize", vv)
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *ListVmwareDcsParams) SetKeyword(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["keyword"] = v
-	return
-}
-
-func (p *ListVmwareDcsParams) SetPage(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["page"] = v
-	return
-}
-
-func (p *ListVmwareDcsParams) SetPagesize(v int) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["pagesize"] = v
-	return
-}
-
-func (p *ListVmwareDcsParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new ListVmwareDcsParams instance,
-// as then you are sure you have configured all required params
-func (s *ZoneService) NewListVmwareDcsParams(zoneid string) *ListVmwareDcsParams {
-	p := &ListVmwareDcsParams{}
-	p.p = make(map[string]interface{})
-	p.p["zoneid"] = zoneid
-	return p
-}
-
-// This is a courtesy helper function, which in some cases may not work as expected!
-func (s *ZoneService) GetVmwareDcID(keyword string, zoneid string, opts ...OptionFunc) (string, int, error) {
-	p := &ListVmwareDcsParams{}
-	p.p = make(map[string]interface{})
-
-	p.p["keyword"] = keyword
-	p.p["zoneid"] = zoneid
-
-	for _, fn := range append(s.cs.options, opts...) {
-		if err := fn(s.cs, p); err != nil {
-			return "", -1, err
-		}
-	}
-
-	l, err := s.ListVmwareDcs(p)
-	if err != nil {
-		return "", -1, err
-	}
-
-	if l.Count == 0 {
-		return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l)
-	}
-
-	if l.Count == 1 {
-		return l.VmwareDcs[0].Id, l.Count, nil
-	}
-
-	if l.Count > 1 {
-		for _, v := range l.VmwareDcs {
-			if v.Name == keyword {
-				return v.Id, l.Count, nil
-			}
-		}
-	}
-	return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l)
-}
-
-// Retrieves VMware DC(s) associated with a zone.
-func (s *ZoneService) ListVmwareDcs(p *ListVmwareDcsParams) (*ListVmwareDcsResponse, error) {
-	resp, err := s.cs.newRequest("listVmwareDcs", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r ListVmwareDcsResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type ListVmwareDcsResponse struct {
-	Count     int         `json:"count"`
-	VmwareDcs []*VmwareDc `json:"vmwaredc"`
-}
-
-type VmwareDc struct {
-	Id      string `json:"id"`
-	Name    string `json:"name"`
-	Vcenter string `json:"vcenter"`
-	Zoneid  int64  `json:"zoneid"`
-}
-
 type ListZonesParams struct {
 	p map[string]interface{}
 }
@@ -1185,19 +966,8 @@
 }
 
 type Zone struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
+	Allocationstate       string            `json:"allocationstate"`
+	Capacity              []ZoneCapacity    `json:"capacity"`
 	Description           string            `json:"description"`
 	Dhcpprovider          string            `json:"dhcpprovider"`
 	Displaytext           string            `json:"displaytext"`
@@ -1217,19 +987,23 @@
 	Networktype           string            `json:"networktype"`
 	Resourcedetails       map[string]string `json:"resourcedetails"`
 	Securitygroupsenabled bool              `json:"securitygroupsenabled"`
-	Tags                  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Zonetoken string `json:"zonetoken"`
+	Tags                  []Tags            `json:"tags"`
+	Zonetoken             string            `json:"zonetoken"`
+}
+
+type ZoneCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
 
 type ReleaseDedicatedZoneParams struct {
@@ -1300,58 +1074,6 @@
 	Success     bool   `json:"success"`
 }
 
-type RemoveVmwareDcParams struct {
-	p map[string]interface{}
-}
-
-func (p *RemoveVmwareDcParams) toURLValues() url.Values {
-	u := url.Values{}
-	if p.p == nil {
-		return u
-	}
-	if v, found := p.p["zoneid"]; found {
-		u.Set("zoneid", v.(string))
-	}
-	return u
-}
-
-func (p *RemoveVmwareDcParams) SetZoneid(v string) {
-	if p.p == nil {
-		p.p = make(map[string]interface{})
-	}
-	p.p["zoneid"] = v
-	return
-}
-
-// You should always use this function to get a new RemoveVmwareDcParams instance,
-// as then you are sure you have configured all required params
-func (s *ZoneService) NewRemoveVmwareDcParams(zoneid string) *RemoveVmwareDcParams {
-	p := &RemoveVmwareDcParams{}
-	p.p = make(map[string]interface{})
-	p.p["zoneid"] = zoneid
-	return p
-}
-
-// Remove a VMware datacenter from a zone.
-func (s *ZoneService) RemoveVmwareDc(p *RemoveVmwareDcParams) (*RemoveVmwareDcResponse, error) {
-	resp, err := s.cs.newRequest("removeVmwareDc", p.toURLValues())
-	if err != nil {
-		return nil, err
-	}
-
-	var r RemoveVmwareDcResponse
-	if err := json.Unmarshal(resp, &r); err != nil {
-		return nil, err
-	}
-
-	return &r, nil
-}
-
-type RemoveVmwareDcResponse struct {
-	Displaytext string `json:"displaytext"`
-	Success     string `json:"success"`
-}
-
 type UpdateZoneParams struct {
 	p map[string]interface{}
 }
@@ -1572,49 +1294,42 @@
 }
 
 type UpdateZoneResponse struct {
-	Allocationstate string `json:"allocationstate"`
-	Capacity        []struct {
-		Capacitytotal int64  `json:"capacitytotal"`
-		Capacityused  int64  `json:"capacityused"`
-		Clusterid     string `json:"clusterid"`
-		Clustername   string `json:"clustername"`
-		Percentused   string `json:"percentused"`
-		Podid         string `json:"podid"`
-		Podname       string `json:"podname"`
-		Type          int    `json:"type"`
-		Zoneid        string `json:"zoneid"`
-		Zonename      string `json:"zonename"`
-	} `json:"capacity"`
-	Description           string            `json:"description"`
-	Dhcpprovider          string            `json:"dhcpprovider"`
-	Displaytext           string            `json:"displaytext"`
-	Dns1                  string            `json:"dns1"`
-	Dns2                  string            `json:"dns2"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Domainname            string            `json:"domainname"`
-	Guestcidraddress      string            `json:"guestcidraddress"`
-	Id                    string            `json:"id"`
-	Internaldns1          string            `json:"internaldns1"`
-	Internaldns2          string            `json:"internaldns2"`
-	Ip6dns1               string            `json:"ip6dns1"`
-	Ip6dns2               string            `json:"ip6dns2"`
-	Localstorageenabled   bool              `json:"localstorageenabled"`
-	Name                  string            `json:"name"`
-	Networktype           string            `json:"networktype"`
-	Resourcedetails       map[string]string `json:"resourcedetails"`
-	Securitygroupsenabled bool              `json:"securitygroupsenabled"`
-	Tags                  []struct {
-		Account      string `json:"account"`
-		Customer     string `json:"customer"`
-		Domain       string `json:"domain"`
-		Domainid     string `json:"domainid"`
-		Key          string `json:"key"`
-		Project      string `json:"project"`
-		Projectid    string `json:"projectid"`
-		Resourceid   string `json:"resourceid"`
-		Resourcetype string `json:"resourcetype"`
-		Value        string `json:"value"`
-	} `json:"tags"`
-	Zonetoken string `json:"zonetoken"`
+	Allocationstate       string                       `json:"allocationstate"`
+	Capacity              []UpdateZoneResponseCapacity `json:"capacity"`
+	Description           string                       `json:"description"`
+	Dhcpprovider          string                       `json:"dhcpprovider"`
+	Displaytext           string                       `json:"displaytext"`
+	Dns1                  string                       `json:"dns1"`
+	Dns2                  string                       `json:"dns2"`
+	Domain                string                       `json:"domain"`
+	Domainid              string                       `json:"domainid"`
+	Domainname            string                       `json:"domainname"`
+	Guestcidraddress      string                       `json:"guestcidraddress"`
+	Id                    string                       `json:"id"`
+	Internaldns1          string                       `json:"internaldns1"`
+	Internaldns2          string                       `json:"internaldns2"`
+	Ip6dns1               string                       `json:"ip6dns1"`
+	Ip6dns2               string                       `json:"ip6dns2"`
+	Localstorageenabled   bool                         `json:"localstorageenabled"`
+	Name                  string                       `json:"name"`
+	Networktype           string                       `json:"networktype"`
+	Resourcedetails       map[string]string            `json:"resourcedetails"`
+	Securitygroupsenabled bool                         `json:"securitygroupsenabled"`
+	Tags                  []Tags                       `json:"tags"`
+	Zonetoken             string                       `json:"zonetoken"`
+}
+
+type UpdateZoneResponseCapacity struct {
+	Capacityallocated int64  `json:"capacityallocated"`
+	Capacitytotal     int64  `json:"capacitytotal"`
+	Capacityused      int64  `json:"capacityused"`
+	Clusterid         string `json:"clusterid"`
+	Clustername       string `json:"clustername"`
+	Name              string `json:"name"`
+	Percentused       string `json:"percentused"`
+	Podid             string `json:"podid"`
+	Podname           string `json:"podname"`
+	Type              int    `json:"type"`
+	Zoneid            string `json:"zoneid"`
+	Zonename          string `json:"zonename"`
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/cloudstack.go b/vendor/github.com/xanzy/go-cloudstack/cloudstack/cloudstack.go
index 2097744..04bbac3 100644
--- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/cloudstack.go
+++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/cloudstack.go
@@ -26,6 +26,7 @@
 	"errors"
 	"fmt"
 	"io/ioutil"
+	"net"
 	"net/http"
 	"net/http/cookiejar"
 	"net/url"
@@ -88,9 +89,6 @@
 	DiskOffering        *DiskOfferingService
 	Domain              *DomainService
 	Event               *EventService
-	ExtFirewall         *ExtFirewallService
-	ExtLoadBalancer     *ExtLoadBalancerService
-	ExternalDevice      *ExternalDeviceService
 	Firewall            *FirewallService
 	GuestOS             *GuestOSService
 	Host                *HostService
@@ -150,8 +148,17 @@
 		client: &http.Client{
 			Jar: jar,
 			Transport: &http.Transport{
-				Proxy:           http.ProxyFromEnvironment,
-				TLSClientConfig: &tls.Config{InsecureSkipVerify: !verifyssl}, // If verifyssl is true, skipping the verify should be false and vice versa
+				Proxy: http.ProxyFromEnvironment,
+				DialContext: (&net.Dialer{
+					Timeout:   30 * time.Second,
+					KeepAlive: 30 * time.Second,
+					DualStack: true,
+				}).DialContext,
+				MaxIdleConns:          100,
+				IdleConnTimeout:       90 * time.Second,
+				TLSClientConfig:       &tls.Config{InsecureSkipVerify: !verifyssl}, // If verifyssl is true, skipping the verify should be false and vice versa
+				TLSHandshakeTimeout:   10 * time.Second,
+				ExpectContinueTimeout: 1 * time.Second,
 			},
 			Timeout: time.Duration(60 * time.Second),
 		},
@@ -181,9 +188,6 @@
 	cs.DiskOffering = NewDiskOfferingService(cs)
 	cs.Domain = NewDomainService(cs)
 	cs.Event = NewEventService(cs)
-	cs.ExtFirewall = NewExtFirewallService(cs)
-	cs.ExtLoadBalancer = NewExtLoadBalancerService(cs)
-	cs.ExternalDevice = NewExternalDeviceService(cs)
 	cs.Firewall = NewFirewallService(cs)
 	cs.GuestOS = NewGuestOSService(cs)
 	cs.Host = NewHostService(cs)
@@ -615,30 +619,6 @@
 	return &EventService{cs: cs}
 }
 
-type ExtFirewallService struct {
-	cs *CloudStackClient
-}
-
-func NewExtFirewallService(cs *CloudStackClient) *ExtFirewallService {
-	return &ExtFirewallService{cs: cs}
-}
-
-type ExtLoadBalancerService struct {
-	cs *CloudStackClient
-}
-
-func NewExtLoadBalancerService(cs *CloudStackClient) *ExtLoadBalancerService {
-	return &ExtLoadBalancerService{cs: cs}
-}
-
-type ExternalDeviceService struct {
-	cs *CloudStackClient
-}
-
-func NewExternalDeviceService(cs *CloudStackClient) *ExternalDeviceService {
-	return &ExternalDeviceService{cs: cs}
-}
-
 type FirewallService struct {
 	cs *CloudStackClient
 }
diff --git a/vendor/github.com/xanzy/go-cloudstack/generate/generate.go b/vendor/github.com/xanzy/go-cloudstack/generate/generate.go
index 219f574..fa641b6 100644
--- a/vendor/github.com/xanzy/go-cloudstack/generate/generate.go
+++ b/vendor/github.com/xanzy/go-cloudstack/generate/generate.go
@@ -32,10 +32,14 @@
 	"unicode"
 )
 
-type apiInfo map[string][]string
-
 const pkg = "cloudstack"
 
+// We prefill this one value to make sure it is not
+// created twice, as this is also a top level type.
+var typeNames = map[string]bool{"Nic": true}
+
+type apiInfo map[string][]string
+
 type allServices struct {
 	services services
 }
@@ -273,8 +277,17 @@
 	pn("		client: &http.Client{")
 	pn("			Jar: jar,")
 	pn("			Transport: &http.Transport{")
-	pn("				Proxy:           http.ProxyFromEnvironment,")
-	pn("				TLSClientConfig: &tls.Config{InsecureSkipVerify: !verifyssl}, // If verifyssl is true, skipping the verify should be false and vice versa")
+	pn("				Proxy: http.ProxyFromEnvironment,")
+	pn("				DialContext: (&net.Dialer{")
+	pn("					Timeout:   30 * time.Second,")
+	pn("					KeepAlive: 30 * time.Second,")
+	pn("					DualStack: true,")
+	pn("				}).DialContext,")
+	pn("				MaxIdleConns:          100,")
+	pn("				IdleConnTimeout:       90 * time.Second,")
+	pn("				TLSClientConfig:       &tls.Config{InsecureSkipVerify: !verifyssl}, // If verifyssl is true, skipping the verify should be false and vice versa")
+	pn("				TLSHandshakeTimeout:   10 * time.Second,")
+	pn("				ExpectContinueTimeout: 1 * time.Second,")
 	pn("			},")
 	pn("		Timeout: time.Duration(60 * time.Second),")
 	pn("		},")
@@ -1246,15 +1259,38 @@
 		tn = parseSingular(ln)
 	}
 
-	pn("type %s struct {", tn)
-	if a.Isasync {
-		pn("	JobID string `json:\"jobid\"`")
-	}
 	sort.Sort(a.Response)
-	s.recusiveGenerateResponseType(a.Response, a.Isasync)
-	pn("}")
-	pn("")
-	return
+	customMarshal := s.recusiveGenerateResponseType(tn, a.Response, a.Isasync)
+
+	if customMarshal {
+		pn("func (r *%s) UnmarshalJSON(b []byte) error {", tn)
+		pn("	var m map[string]interface{}")
+		pn("	err := json.Unmarshal(b, &m)")
+		pn("	if err != nil {")
+		pn("		return err")
+		pn("	}")
+		pn("")
+		pn("	if success, ok := m[\"success\"].(string); ok {")
+		pn("		m[\"success\"] = success == \"true\"")
+		pn("		b, err = json.Marshal(m)")
+		pn("		if err != nil {")
+		pn("			return err")
+		pn("		}")
+		pn("	}")
+		pn("")
+		// pn("	if ostypeid, ok := m[\"ostypeid\"].(int); ok {")
+		// pn("		m[\"ostypeid\"] = strconv.Itoa(ostypeid)")
+		// pn("		b, err = json.Marshal(m)")
+		// pn("		if err != nil {")
+		// pn("			return err")
+		// pn("		}")
+		// pn("	}")
+		// pn("")
+		pn("	type alias %s", tn)
+		pn("	return json.Unmarshal(b, (*alias)(r))")
+		pn("}")
+		pn("")
+	}
 }
 
 func parseSingular(n string) string {
@@ -1267,43 +1303,86 @@
 	return strings.TrimSuffix(n, "s")
 }
 
-func (s *service) recusiveGenerateResponseType(resp APIResponses, async bool) (output string) {
+func (s *service) recusiveGenerateResponseType(tn string, resp APIResponses, async bool) bool {
 	pn := s.pn
+	customMarshal := false
 	found := make(map[string]bool)
 
+	pn("type %s struct {", tn)
+	if async && !strings.Contains(tn, "SystemVm") {
+		pn("	JobID string `json:\"jobid\"`")
+	}
+
 	for _, r := range resp {
 		if r.Name == "" {
 			continue
 		}
 		if r.Name == "secondaryip" {
 			pn("%s []struct {", capitalize(r.Name))
-			pn("Id string `json:\"id\"`")
-			pn("Ipaddress string `json:\"ipaddress\"`")
+			pn("	Id string `json:\"id\"`")
+			pn("	Ipaddress string `json:\"ipaddress\"`")
 			pn("} `json:\"%s\"`", r.Name)
 			continue
 		}
 		if r.Response != nil {
-			pn("%s []struct {", capitalize(r.Name))
 			sort.Sort(r.Response)
-			s.recusiveGenerateResponseType(r.Response, async)
-			pn("} `json:\"%s\"`", r.Name)
+			typeName, create := getUniqueTypeName(tn, r.Name)
+			pn("%s []%s `json:\"%s\"`", capitalize(r.Name), typeName, r.Name)
+			if create {
+				defer s.recusiveGenerateResponseType(typeName, r.Response, false)
+			}
 		} else {
 			if !found[r.Name] {
 				// This code is needed because the response field is different for sync and async calls :(
-				if r.Name == "success" {
-					if async {
-						pn("%s bool `json:\"%s\"`", capitalize(r.Name), r.Name)
-					} else {
-						pn("%s string `json:\"%s\"`", capitalize(r.Name), r.Name)
+				switch r.Name {
+				case "success":
+					pn("%s bool `json:\"%s\"`", capitalize(r.Name), r.Name)
+					if !async {
+						customMarshal = true
 					}
-				} else {
+				// case "ostypeid":
+				// 	pn("%s string `json:\"%s\"`", capitalize(r.Name), r.Name)
+				// 	customMarshal = true
+				default:
 					pn("%s %s `json:\"%s\"`", capitalize(r.Name), mapType(r.Type), r.Name)
 				}
 				found[r.Name] = true
 			}
 		}
 	}
-	return
+
+	pn("}")
+	pn("")
+
+	return customMarshal
+}
+
+func getUniqueTypeName(prefix, name string) (string, bool) {
+	// We have special cases for [in|e]gressrules, nics and tags as the exact
+	// sames types are used used in multiple different locations.
+	switch {
+	case strings.HasSuffix(name, "gressrule"):
+		name = "rule"
+	case strings.HasSuffix(name, "nic"):
+		prefix = ""
+		name = "nic"
+	case strings.HasSuffix(name, "tags"):
+		prefix = ""
+		name = "tags"
+	}
+
+	tn := prefix + capitalize(name)
+	if !typeNames[tn] {
+		typeNames[tn] = true
+		return tn, true
+	}
+
+	// Return here as this means the type already exists.
+	if name == "rule" || name == "nic" || name == "tags" {
+		return tn, false
+	}
+
+	return getUniqueTypeName(prefix, name+"Internal")
 }
 
 func getAllServices(listApis string) (*allServices, []error, error) {
@@ -1317,6 +1396,7 @@
 	as := &allServices{}
 	errors := []error{}
 	for sn, apis := range layout {
+		typeNames[sn] = true
 		s := &service{name: sn}
 		for _, api := range apis {
 			a, found := ai[api]
@@ -1334,8 +1414,8 @@
 
 	// Add an extra field to enable adding a custom service
 	as.services = append(as.services, &service{name: "CustomService"})
-
 	sort.Sort(as.services)
+
 	return as, errors, nil
 }
 
@@ -1382,6 +1462,8 @@
 		return "int"
 	case "long":
 		return "int64"
+	case "float":
+		return "float64"
 	case "list":
 		return "[]string"
 	case "map":
@@ -1401,6 +1483,9 @@
 }
 
 func capitalize(s string) string {
+	if s == "jobid" {
+		return "JobID"
+	}
 	r := []rune(s)
 	r[0] = unicode.ToUpper(r[0])
 	return string(r)
diff --git a/vendor/github.com/xanzy/go-cloudstack/generate/layout.go b/vendor/github.com/xanzy/go-cloudstack/generate/layout.go
index e874631..54c662f 100644
--- a/vendor/github.com/xanzy/go-cloudstack/generate/layout.go
+++ b/vendor/github.com/xanzy/go-cloudstack/generate/layout.go
@@ -18,19 +18,16 @@
 
 var layout = apiInfo{
 	"LoadBalancerService": {
-		"addF5LoadBalancer",
 		"addNetscalerLoadBalancer",
 		"assignCertToLoadBalancer",
 		"assignToGlobalLoadBalancerRule",
 		"assignToLoadBalancerRule",
-		"configureF5LoadBalancer",
 		"configureNetscalerLoadBalancer",
 		"createGlobalLoadBalancerRule",
 		"createLBHealthCheckPolicy",
 		"createLBStickinessPolicy",
 		"createLoadBalancer",
 		"createLoadBalancerRule",
-		"deleteF5LoadBalancer",
 		"deleteGlobalLoadBalancerRule",
 		"deleteLBHealthCheckPolicy",
 		"deleteLBStickinessPolicy",
@@ -38,7 +35,6 @@
 		"deleteLoadBalancerRule",
 		"deleteNetscalerLoadBalancer",
 		"deleteSslCert",
-		"listF5LoadBalancers",
 		"listGlobalLoadBalancerRules",
 		"listLBHealthCheckPolicies",
 		"listLBStickinessPolicies",
@@ -70,7 +66,6 @@
 		"deleteOpenDaylightController",
 		"deletePhysicalNetwork",
 		"deleteStorageNetworkIpRange",
-		"listF5LoadBalancerNetworks",
 		"listNetscalerLoadBalancerNetworks",
 		"listNetworkIsolationMethods",
 		"listNetworkServiceProviders",
@@ -79,7 +74,6 @@
 		"listOpenDaylightControllers",
 		"listPaloAltoFirewallNetworks",
 		"listPhysicalNetworks",
-		"listSrxFirewallNetworks",
 		"listStorageNetworkIpRange",
 		"listSupportedNetworkServices",
 		"releasePublicIpRange",
@@ -136,9 +130,7 @@
 	},
 	"FirewallService": {
 		"addPaloAltoFirewall",
-		"addSrxFirewall",
 		"configurePaloAltoFirewall",
-		"configureSrxFirewall",
 		"createEgressFirewallRule",
 		"createFirewallRule",
 		"createPortForwardingRule",
@@ -146,12 +138,10 @@
 		"deleteFirewallRule",
 		"deletePaloAltoFirewall",
 		"deletePortForwardingRule",
-		"deleteSrxFirewall",
 		"listEgressFirewallRules",
 		"listFirewallRules",
 		"listPaloAltoFirewalls",
 		"listPortForwardingRules",
-		"listSrxFirewalls",
 		"updateEgressFirewallRule",
 		"updateFirewallRule",
 		"updatePortForwardingRule",
@@ -206,7 +196,6 @@
 		"detachVolume",
 		"extractVolume",
 		"getPathForVolume",
-		"getSolidFireVolumeAccessGroupId",
 		"getSolidFireVolumeSize",
 		"getUploadParamsForVolume",
 		"getVolumeiScsiName",
@@ -262,17 +251,14 @@
 		"updateAccount",
 	},
 	"ZoneService": {
-		"addVmwareDc",
 		"createZone",
 		"dedicateZone",
 		"deleteZone",
 		"disableOutOfBandManagementForZone",
 		"enableOutOfBandManagementForZone",
 		"listDedicatedZones",
-		"listVmwareDcs",
 		"listZones",
 		"releaseDedicatedZone",
-		"removeVmwareDc",
 		"updateZone",
 	},
 	"UsageService": {
@@ -339,18 +325,6 @@
 		"updateIso",
 		"updateIsoPermissions",
 	},
-	"ExternalDeviceService": {
-		"addCiscoAsa1000vResource",
-		"addCiscoVnmcResource",
-		"deleteCiscoAsa1000vResource",
-		"deleteCiscoNexusVSM",
-		"deleteCiscoVnmcResource",
-		"disableCiscoNexusVSM",
-		"enableCiscoNexusVSM",
-		"listCiscoAsa1000vResources",
-		"listCiscoNexusVSMs",
-		"listCiscoVnmcResources",
-	},
 	"RouterService": {
 		"changeServiceForRouter",
 		"configureVirtualRouterElement",
@@ -652,16 +626,6 @@
 		"listHypervisors",
 		"updateHypervisorCapabilities",
 	},
-	"ExtLoadBalancerService": {
-		"addExternalLoadBalancer",
-		"deleteExternalLoadBalancer",
-		"listExternalLoadBalancers",
-	},
-	"ExtFirewallService": {
-		"addExternalFirewall",
-		"deleteExternalFirewall",
-		"listExternalFirewalls",
-	},
 	"BigSwitchBCFService": {
 		"addBigSwitchBcfDevice",
 		"deleteBigSwitchBcfDevice",
diff --git a/vendor/github.com/xanzy/go-cloudstack/generate/listApis.json b/vendor/github.com/xanzy/go-cloudstack/generate/listApis.json
index 98a5c3b..5cc1c06 100644
--- a/vendor/github.com/xanzy/go-cloudstack/generate/listApis.json
+++ b/vendor/github.com/xanzy/go-cloudstack/generate/listApis.json
@@ -1,89528 +1,91584 @@
 {
     "api": [
         {
+            "name": "createVPCOffering",
             "description": "Creates VPC offering",
             "isasync": true,
-            "name": "createVPCOffering",
+            "related": "listVPCOfferings,updateVPCOffering",
             "params": [
                 {
-                    "description": "services supported by the vpc offering",
-                    "length": 255,
-                    "name": "supportedservices",
-                    "required": true,
-                    "type": "list"
-                },
-                {
-                    "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network",
-                    "length": 255,
-                    "name": "serviceproviderlist",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "desired service capabilities as part of vpc offering",
-                    "length": 255,
                     "name": "servicecapabilitylist",
+                    "description": "desired service capabilities as part of vpc offering",
+                    "type": "map",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "map"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the display text of the vpc offering",
+                    "name": "supportedservices",
+                    "description": "services supported by the vpc offering",
+                    "type": "list",
                     "length": 255,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "the name of the vpc offering",
+                    "name": "serviceproviderlist",
+                    "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network",
+                    "type": "map",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "the name of the vpc offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the ID of the service offering for the VPC router appliance",
-                    "length": 255,
                     "name": "serviceofferingid",
-                    "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
+                    "description": "the ID of the service offering for the VPC router appliance",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "updateServiceOffering,createServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the vpc offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listVPCOfferings,updateVPCOffering",
             "response": [
                 {
-                    "description": " indicates if the vpc offering supports distributed router for one-hop forwarding",
-                    "name": "distributedvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of supported services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the date this vpc offering was created",
                     "name": "created",
+                    "description": "the date this vpc offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "the name of the vpc offering",
-                    "name": "name",
-                    "type": "string"
+                    "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
                 },
                 {
-                    "description": " indicated if the offering can support region level vpc",
-                    "name": "supportsregionLevelvpc",
+                    "name": "distributedvpcrouter",
+                    "description": " indicates if the vpc offering supports distributed router for one-hop forwarding",
                     "type": "boolean"
                 },
                 {
-                    "description": "the id of the vpc offering",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the vpc offering.",
                     "name": "displaytext",
+                    "description": "an alternate display text of the vpc offering.",
                     "type": "string"
                 },
                 {
-                    "description": "true if vpc offering is default, false otherwise",
-                    "name": "isdefault",
+                    "name": "supportsregionLevelvpc",
+                    "description": " indicated if the offering can support region level vpc",
                     "type": "boolean"
                 },
                 {
-                    "description": "state of the vpc offering. Can be Disabled/Enabled",
+                    "name": "id",
+                    "description": "the id of the vpc offering",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the vpc offering",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if vpc offering is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "state",
+                    "description": "state of the vpc offering. Can be Disabled/Enabled",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Creates an account from an LDAP user",
-            "isasync": false,
-            "name": "ldapCreateAccount",
-            "params": [
-                {
-                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
-                    "length": 255,
-                    "name": "timezone",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Creates the user under the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Unique username.",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Network domain for the account's networks",
-                    "length": 255,
-                    "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Account UUID, required for adding account from external provisioning system",
-                    "length": 255,
-                    "name": "accountid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Creates the account under the specified role.",
-                    "length": 255,
-                    "name": "roleid",
-                    "related": "listRoles,createRole",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Type of the account. Specify 0 for user, 1 for root admin, and 2 for domain admin",
-                    "length": 255,
-                    "name": "accounttype",
-                    "required": false,
-                    "type": "short"
-                },
-                {
-                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "User UUID, required for adding account from external provisioning system",
-                    "length": 255,
-                    "name": "userid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "details for account used to store specific parameters",
-                    "length": 255,
-                    "name": "accountdetails",
-                    "required": false,
-                    "type": "map"
-                }
-            ],
-            "related": "disableAccount,listAccounts,markDefaultZoneForAccount,listAccounts,enableAccount,updateAccount,lockAccount,createAccount",
-            "response": [
-                {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this account",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "true if account is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by account",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this account can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of acl groups that account belongs to",
-                    "name": "groups",
-                    "type": "list"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this account",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this account",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "account type (admin, domain-admin, user)",
-                    "name": "accounttype",
-                    "type": "short"
-                },
-                {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the default zone of the account",
-                    "name": "defaultzoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this account",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of users associated with account",
-                    "name": "user",
-                    "response": [
-                        {
-                            "description": "the timezone user was created in",
-                            "name": "timezone",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the date and time the user account was created",
-                            "name": "created",
-                            "type": "date"
-                        },
-                        {
-                            "description": "the ID of the role",
-                            "name": "roleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if user is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user name",
-                            "name": "username",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the role",
-                            "name": "rolename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the secret key of the user",
-                            "name": "secretkey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user email address",
-                            "name": "email",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account name of the user",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account type of the user",
-                            "name": "accounttype",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the user firstname",
-                            "name": "firstname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user state",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the api key of the user",
-                            "name": "apikey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
-                            "name": "iscallerchilddomain",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the type of the role",
-                            "name": "roletype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the user",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of projects the account can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "details for the account",
-                    "name": "accountdetails",
-                    "type": "map"
-                },
-                {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the account",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this account",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
+            "name": "createPod",
             "description": "Creates a new Pod.",
             "isasync": false,
-            "name": "createPod",
+            "related": "listPods,createManagementNetworkIpRange,updatePod",
             "params": [
                 {
-                    "description": "the starting IP address for the Pod",
-                    "length": 255,
-                    "name": "startip",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID in which the Pod will be created",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the Zone ID in which the Pod will be created",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "the gateway for the Pod",
-                    "length": 255,
-                    "name": "gateway",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask for the Pod",
-                    "length": 255,
-                    "name": "netmask",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ending IP address for the Pod",
-                    "length": 255,
-                    "name": "endip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Allocation state of this Pod for allocation of new resources",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Pod",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "the name of the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "Allocation state of this Pod for allocation of new resources",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startip",
+                    "description": "the starting IP address for the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP address for the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask for the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listPods,updatePod",
             "response": [
                 {
-                    "description": "the name of the Pod",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the Pod",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the Pod",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending IP for the Pod",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting IP for the Pod",
                     "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Pod",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of the Pod",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the capacity of the Pod",
-                    "name": "capacity",
-                    "response": [
-                        {
-                            "description": "the capacity type",
-                            "name": "type",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Zone ID",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Cluster name",
-                            "name": "clustername",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone name",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Pod name",
-                            "name": "podname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity currently in use",
-                            "name": "capacityused",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the percentage of capacity currently in use",
-                            "name": "percentused",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Pod ID",
-                            "name": "podid",
-                            "type": "string"
-                        }
-                    ],
+                    "description": "the starting IP for the Pod",
                     "type": "list"
                 },
                 {
-                    "description": "the Zone ID of the Pod",
-                    "name": "zoneid",
+                    "name": "gateway",
+                    "description": "the gateway of the Pod",
                     "type": "string"
                 },
                 {
-                    "description": "the allocation state of the Pod",
+                    "name": "forsystemvms",
+                    "description": "indicates if range is dedicated for CPVM and SSVM",
+                    "type": "list"
+                },
+                {
                     "name": "allocationstate",
+                    "description": "the allocation state of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "vlanid",
+                    "description": "indicates Vlan ID for the range",
+                    "type": "list"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "capacity",
+                    "description": "the capacity of the Pod",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "podname",
+                            "description": "the Pod name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
+                            "type": "long"
+                        },
+                        {
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the capacity type",
+                            "type": "short"
+                        }
+                    ]
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP for the Pod",
+                    "type": "list"
+                }
+            ]
+        },
+        {
+            "name": "ldapCreateAccount",
+            "description": "Creates an account from an LDAP user",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "updateAccount,listAccounts,enableAccount,listAccounts,markDefaultZoneForAccount,disableAccount,lockAccount,createAccount",
+            "params": [
+                {
+                    "name": "timezone",
+                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accounttype",
+                    "description": "Type of the account. Specify 0 for user, 1 for root admin, and 2 for domain admin",
+                    "type": "short",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "roleid",
+                    "description": "Creates the account under the specified role.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createRole,listRoles,updateRole"
+                },
+                {
+                    "name": "userid",
+                    "description": "User UUID, required for adding account from external provisioning system",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "Creates the user under the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "Network domain for the account's networks",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for account used to store specific parameters",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "Unique username.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "accountid",
+                    "description": "Account UUID, required for adding account from external provisioning system",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
+                    "type": "short"
+                },
+                {
+                    "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
+                    "type": "list"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "defaultzoneid",
+                    "description": "the default zone of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "name of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for the account",
+                    "type": "map"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
+                    "type": "boolean"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "id of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "apikey",
+                            "description": "the api key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secretkey",
+                            "description": "the secret key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "created",
+                            "description": "the date and time the user account was created",
+                            "type": "date"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the user ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "accounttype",
+                            "description": "the account type of the user",
+                            "type": "short"
+                        },
+                        {
+                            "name": "rolename",
+                            "description": "the name of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "lastname",
+                            "description": "the user lastname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the user state",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "username",
+                            "description": "the user name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roletype",
+                            "description": "the type of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "timezone",
+                            "description": "the timezone user was created in",
+                            "type": "string"
+                        },
+                        {
+                            "name": "firstname",
+                            "description": "the user firstname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roleid",
+                            "description": "the ID of the role",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
+                    "type": "long"
+                },
+                {
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
+                    "type": "long"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Safely removes raw records from cloud_usage table",
-            "isasync": false,
             "name": "removeRawUsageRecords",
+            "description": "Safely removes raw records from cloud_usage table",
+            "since": "4.6.0",
+            "isasync": false,
             "params": [
                 {
-                    "description": "Specify the number of days (greater than zero) to remove records that are older than those number of days from today. For example, specifying 10 would result in removing all the records created before 10 days from today",
-                    "length": 255,
                     "name": "interval",
-                    "required": true,
-                    "type": "integer"
+                    "description": "Specify the number of days (greater than zero) to remove records that are older than those number of days from today. For example, specifying 10 would result in removing all the records created before 10 days from today",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
-            ],
-            "since": "4.6.0"
+            ]
         },
         {
+            "name": "copyIso",
             "description": "Copies an iso from one zone to another.",
             "isasync": true,
-            "name": "copyIso",
+            "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.",
-                    "length": 255,
                     "name": "sourcezoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "Template ID.",
-                    "length": 255,
                     "name": "id",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyIso,copyTemplate,listTemplates,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
+                    "description": "Template ID.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,copyIso,registerIso,createTemplate,listTemplates"
                 },
                 {
-                    "description": "ID of the zone the template is being copied to.",
+                    "name": "destzoneids",
+                    "description": "A list of IDs of the zones that the template needs to be copied to.Specify this list if the template needs to copied to multiple zones in one go. Do not specify destzoneid and destzoneids together, however one of them is required.",
+                    "type": "list",
                     "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
                     "name": "destzoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
+                    "description": "ID of the zone the template is being copied to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
-            "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,listTemplates,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
             "response": [
                 {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the template",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the template display text",
                     "name": "displaytext",
+                    "description": "the template display text",
                     "type": "string"
                 },
                 {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "checksum of the template",
-                    "name": "checksum",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the format of the template.",
                     "name": "format",
+                    "description": "the format of the template.",
                     "type": "imageformat"
                 },
                 {
-                    "description": "additional key/value details tied with template",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone for this template",
                     "name": "zoneid",
+                    "description": "the ID of the zone for this template",
                     "type": "string"
                 },
                 {
-                    "description": "the date this template was created",
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date this template was created",
                     "type": "date"
                 },
                 {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the template name",
-                    "name": "name",
+                    "name": "status",
+                    "description": "the status of the template",
                     "type": "string"
                 },
                 {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
                 },
                 {
-                    "description": "the size of the template",
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date this template was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
+                    "type": "string"
+                },
+                {
                     "name": "size",
+                    "description": "the size of the template",
                     "type": "long"
                 },
                 {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the type of the template",
+                    "name": "details",
+                    "description": "additional key/value details tied with template",
+                    "type": "map"
+                },
+                {
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string"
+                },
+                {
                     "name": "templatetype",
+                    "description": "the type of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the date this template was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
-                    "type": "string"
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the status of the template",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
                     "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the project id of the template",
-                    "name": "projectid",
+                    "name": "templatetag",
+                    "description": "the tag of this template",
                     "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
                 }
             ]
         },
         {
+            "name": "deleteAutoScaleVmProfile",
             "description": "Deletes a autoscale vm profile.",
             "isasync": true,
-            "name": "deleteAutoScaleVmProfile",
             "params": [
                 {
+                    "name": "id",
                     "description": "the ID of the autoscale profile",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateAutoScaleVmProfile,listAutoScaleVmProfiles,createAutoScaleVmProfile",
                     "required": true,
-                    "type": "uuid"
+                    "related": "listAutoScaleVmProfiles,createAutoScaleVmProfile,updateAutoScaleVmProfile"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Adds an external firewall appliance",
-            "isasync": false,
-            "name": "addExternalFirewall",
+            "name": "provisionCertificate",
+            "description": "Issues and propagates client certificate on a connected host/agent using configured CA plugin",
+            "since": "4.11.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "Password of the external firewall appliance.",
+                    "name": "hostid",
+                    "description": "The host/agent uuid to which the certificate has to be provisioned (issued and propagated)",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "password",
                     "required": true,
-                    "type": "string"
+                    "related": "cancelHostMaintenance,addBaremetalHost,updateHost,prepareHostForMaintenance,reconnectHost,listHosts,addHost"
                 },
                 {
-                    "description": "Zone in which to add the external firewall appliance.",
+                    "name": "provider",
+                    "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used",
+                    "type": "string",
                     "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "Username of the external firewall appliance.",
+                    "name": "reconnect",
+                    "description": "Whether to attempt reconnection with host/agent after successful deployment of certificate. When option is not provided, configured global setting is used",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "URL of the external firewall appliance.",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "listExternalFirewalls",
-            "response": [
-                {
-                    "description": "the ID of the external firewall",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
-                },
-                {
-                    "description": "the private security zone of the external firewall",
-                    "name": "privatezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a F5 external load balancer appliance added in a zone.",
-            "isasync": false,
-            "name": "deleteExternalLoadBalancer",
-            "params": [
-                {
-                    "description": "Id of the external loadbalancer appliance.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance,listHosts",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists VM metrics",
-            "isasync": false,
             "name": "listVirtualMachinesMetrics",
+            "description": "Lists VM metrics",
+            "since": "4.9.3",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the IDs of the virtual machines, mutually exclusive with id",
-                    "length": 255,
-                    "name": "ids",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,restoreVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "list"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list vms by affinity group",
-                    "length": 255,
-                    "name": "affinitygroupid",
-                    "related": "createAffinityGroup,listAffinityGroups",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list vms by ssh keypair name",
-                    "length": 255,
-                    "name": "keypair",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the availability zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance,listHosts",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the pod ID",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,restoreVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the target hypervisor for the template",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "displayvm",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list by network type; true if need to list vms using Virtual Network, false otherwise",
-                    "length": 255,
-                    "name": "forvirtualnetwork",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the user ID that created the VM and is under the account that owns the VM",
-                    "length": 255,
-                    "name": "userid",
-                    "related": "disableUser,lockUser,enableUser,getUser,listUsers,updateUser,createUser",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the pod ID",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the storage ID where vm's volumes belong to",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,updateStoragePool,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance,listHosts",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "list vms by iso",
-                    "length": 255,
-                    "name": "isoid",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list vms by vpc",
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
                     "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,updateVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "list by network id",
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,listNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "",
+                    "name": "userid",
+                    "description": "the user ID that created the VM and is under the account that owns the VM",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "pagesize",
                     "required": false,
-                    "type": "integer"
+                    "related": "updateUser,listUsers,enableUser,lockUser,getUser,createUser,disableUser"
                 },
                 {
-                    "description": "the group ID",
-                    "length": 255,
-                    "name": "groupid",
-                    "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list vms by template",
-                    "length": 255,
-                    "name": "templateid",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,listTemplates,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list by the service offering",
-                    "length": 255,
                     "name": "serviceofferingid",
-                    "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
+                    "description": "list by the service offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
                     "since": "4.4",
-                    "type": "uuid"
+                    "related": "updateServiceOffering,createServiceOffering,listServiceOfferings"
                 },
                 {
-                    "description": "name of the virtual machine (a substring match is made against the parameter value, data for all matching VMs will be returned)",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the storage ID where vm's volumes belong to",
-                    "length": 255,
                     "name": "storageid",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,updateStoragePool,enableStorageMaintenance,cancelStorageMaintenance",
+                    "description": "the storage ID where vm's volumes belong to",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool,updateStoragePool"
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "list vms by affinity group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAffinityGroups,createAffinityGroup"
+                },
+                {
+                    "name": "keypair",
+                    "description": "list vms by ssh keypair name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "the pod ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "ids",
+                    "description": "the IDs of the virtual machines, mutually exclusive with id",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4",
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,restoreVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,restoreVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "details",
+                    "description": "comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "podid",
+                    "description": "the pod ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "list by network type; true if need to list vms using Virtual Network, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isoid",
+                    "description": "list vms by iso",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the availability zone ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "list vms by vpc",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateVPC,createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listInstanceGroups,createInstanceGroup,updateInstanceGroup"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,updateHost,prepareHostForMaintenance,reconnectHost,listHosts,addHost"
+                },
+                {
+                    "name": "networkid",
+                    "description": "list by network id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the virtual machine (a substring match is made against the parameter value, data for all matching VMs will be returned)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "storageid",
+                    "description": "the storage ID where vm's volumes belong to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool,updateStoragePool"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the target hypervisor for the template",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "templateid",
+                    "description": "list vms by template",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,updateHost,prepareHostForMaintenance,reconnectHost,listHosts,addHost"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the VM's primary IP address",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "disk read in MiB",
-                    "name": "diskread",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory capacity in GiB",
-                    "name": "memorytotal",
-                    "type": "string"
-                },
-                {
-                    "description": "network read in MiB",
                     "name": "networkread",
+                    "description": "network read in MiB",
                     "type": "string"
                 },
                 {
-                    "description": "disk write in MiB",
-                    "name": "diskwrite",
-                    "type": "string"
-                },
-                {
-                    "description": "the total cpu capacity in Ghz",
                     "name": "cputotal",
+                    "description": "the total cpu capacity in Ghz",
                     "type": "string"
                 },
                 {
-                    "description": "the total disk iops",
+                    "name": "networkwrite",
+                    "description": "network write in MiB",
+                    "type": "string"
+                },
+                {
+                    "name": "diskwrite",
+                    "description": "disk write in MiB",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory capacity in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the VM's primary IP address",
+                    "type": "string"
+                },
+                {
                     "name": "diskiopstotal",
+                    "description": "the total disk iops",
                     "type": "long"
                 },
                 {
-                    "description": "network write in MiB",
-                    "name": "networkwrite",
+                    "name": "diskread",
+                    "description": "disk read in MiB",
                     "type": "string"
                 }
-            ],
-            "since": "4.9.3"
+            ]
         },
         {
+            "name": "deleteStoragePool",
             "description": "Deletes a storage pool.",
             "isasync": false,
-            "name": "deleteStoragePool",
             "params": [
                 {
-                    "description": "Storage pool id",
+                    "name": "forced",
+                    "description": "Force destroy storage pool (force expunge volumes in Destroyed state as a part of pool removal)",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "id",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,updateStoragePool,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "Force destroy storage pool (force expunge volumes in Destroyed state as a part of pool removal)",
+                    "name": "id",
+                    "description": "Storage pool id",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "forced",
-                    "required": false,
-                    "type": "boolean"
+                    "required": true,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool,updateStoragePool"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listHosts",
             "description": "Lists hosts.",
             "isasync": false,
-            "name": "listHosts",
+            "related": "cancelHostMaintenance,addBaremetalHost,updateHost,prepareHostForMaintenance,reconnectHost,addHost",
             "params": [
                 {
-                    "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the id of the host",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance,listHosts",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the host type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the state of the host",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]",
-                    "length": 255,
-                    "name": "resourcestate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the host",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists hosts existing in particular cluster",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster,listClusters,updateCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]",
-                    "length": 255,
-                    "name": "outofbandmanagementpowerstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "if true, list only hosts dedicated to HA",
-                    "length": 255,
                     "name": "hahost",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "if true, list only hosts dedicated to HA",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the name of the host",
+                    "name": "resourcestate",
+                    "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]",
+                    "type": "string",
                     "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "list hosts for which out-of-band management is enabled",
+                    "name": "state",
+                    "description": "the state of the host",
+                    "type": "string",
                     "length": 255,
-                    "name": "outofbandmanagementenabled",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "the Pod ID for the host",
+                    "name": "details",
+                    "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]",
+                    "type": "list",
                     "length": 255,
-                    "name": "podid",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM",
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,restoreVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,restoreVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "outofbandmanagementenabled",
+                    "description": "list hosts for which out-of-band management is enabled",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "outofbandmanagementpowerstate",
+                    "description": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,updateHost,prepareHostForMaintenance,reconnectHost,listHosts,addHost"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "lists hosts existing in particular cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,listClusters,updateCluster"
                 }
             ],
-            "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance",
             "response": [
                 {
-                    "description": "GPU cards present in the host",
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the last annotation set on this host by an admin",
+                    "type": "string"
+                },
+                {
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor",
+                    "type": "string"
+                },
+                {
+                    "name": "oscategoryname",
+                    "description": "the OS category name of the host",
+                    "type": "string"
+                },
+                {
                     "name": "gpugroup",
+                    "description": "GPU cards present in the host",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "GPU cards present in the host",
-                            "name": "gpugroupname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of enabled vGPUs",
                             "name": "vgpu",
+                            "description": "the list of enabled vGPUs",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
+                                    "name": "maxresolutionx",
+                                    "description": "Maximum X resolution per display",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Maximum Y resolution per display",
-                                    "name": "maxresolutiony",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
-                                    "name": "remainingcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
                                     "name": "maxcapacity",
+                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Video RAM for this vGPU type",
-                                    "name": "videoram",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Model Name of vGPU",
                                     "name": "vgputype",
+                                    "description": "Model Name of vGPU",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
                                     "name": "maxvgpuperpgpu",
+                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
+                                    "name": "remainingcapacity",
+                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutiony",
+                                    "description": "Maximum Y resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "videoram",
+                                    "description": "Video RAM for this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxheads",
+                                    "description": "Maximum displays per user",
                                     "type": "long"
                                 }
-                            ],
-                            "type": "list"
+                            ]
+                        },
+                        {
+                            "name": "gpugroupname",
+                            "description": "GPU cards present in the host",
+                            "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
-                    "type": "boolean"
+                    "name": "username",
+                    "description": "the admin that annotated this host",
+                    "type": "string"
                 },
                 {
-                    "description": "the Zone ID of the host",
                     "name": "zoneid",
+                    "description": "the Zone ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
+                    "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "averageload",
+                    "description": "the cpu average load on the host",
                     "type": "long"
                 },
                 {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
-                    "type": "string"
+                    "name": "hostha",
+                    "description": "the host HA information information",
+                    "type": "hostharesponse"
                 },
                 {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "events available for the host",
-                    "name": "events",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU currently used",
                     "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the host type",
-                    "name": "type",
-                    "type": "type"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the amount of the host's memory currently used",
-                    "name": "memoryused",
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
                     "type": "long"
                 },
                 {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
-                    "type": "date"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the name of the host",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the state of the host",
                     "name": "state",
+                    "description": "the state of the host",
                     "type": "status"
                 },
                 {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host",
                     "name": "id",
+                    "description": "the ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
-                    "type": "string"
-                },
-                {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
-                    "type": "long"
-                },
-                {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
-                    "type": "string"
-                },
-                {
-                    "description": "the host out-of-band management information",
                     "name": "outofbandmanagement",
+                    "description": "the host out-of-band management information",
                     "type": "outofbandmanagementresponse"
                 },
                 {
-                    "description": "capabilities of the host",
+                    "name": "managementserverid",
+                    "description": "the management server ID of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "events",
+                    "description": "events available for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the host version",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
+                    "type": "string"
+                },
+                {
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "type"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
+                    "type": "long"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
+                },
+                {
                     "name": "capabilities",
+                    "description": "capabilities of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpusockets",
+                    "description": "the number of CPU sockets on the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "the resource state of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "details",
+                    "description": "Host details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the host hypervisor",
+                    "type": "hypervisortype"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "lastannotated",
+                    "description": "the last time this host was annotated",
+                    "type": "date"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                }
+            ]
+        },
+        {
+            "name": "updateStoragePool",
+            "description": "Updates a storage pool.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool",
+            "params": [
+                {
+                    "name": "tags",
+                    "description": "comma-separated list of tags for the storage pool",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "capacitybytes",
+                    "description": "bytes CloudStack can provision from this storage pool",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the Id of the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool,updateStoragePool"
+                },
+                {
+                    "name": "enabled",
+                    "description": "false to disable the pool for allocation of new volumes, true to enable it back.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "overprovisionfactor",
+                    "description": "the overprovisionfactor for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the storage pool was created",
+                    "type": "date"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the storage pool",
+                    "type": "storagepoolstatus"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizeused",
+                    "description": "the host's currently used disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the name of the cluster for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the storage pool type",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "Storage provider for this pool",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor type of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "allocatediops",
+                    "description": "total min IOPS currently in use by volumes",
+                    "type": "long"
+                },
+                {
+                    "name": "storagecapabilities",
+                    "description": "the storage pool capabilities",
+                    "type": "map"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the storage pool path",
+                    "type": "string"
+                },
+                {
+                    "name": "suitableformigration",
+                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the storage pool",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates a storage pool.",
-            "isasync": false,
-            "name": "updateStoragePool",
-            "params": [
-                {
-                    "description": "bytes CloudStack can provision from this storage pool",
-                    "length": 255,
-                    "name": "capacitybytes",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "IOPS CloudStack can provision from this storage pool",
-                    "length": 255,
-                    "name": "capacityiops",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the Id of the storage pool",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,updateStoragePool,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "false to disable the pool for allocation of new volumes, true to enable it back.",
-                    "length": 255,
-                    "name": "enabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "comma-separated list of tags for the storage pool",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "list"
-                }
-            ],
-            "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-            "response": [
-                {
-                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the Zone name of the storage pool",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool type",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the cluster for the storage pool",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the storage pool",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently used disk size",
-                    "name": "disksizeused",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the storage pool",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the storage pool",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the storage pool",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the storage pool",
-                    "name": "state",
-                    "type": "storagepoolstatus"
-                },
-                {
-                    "description": "the Pod ID of the storage pool",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the cluster for the storage pool",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the tags for the storage pool",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "the scope of the storage pool",
-                    "name": "scope",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor type of the storage pool",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the storage pool",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the storage pool was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the overprovisionfactor for the storage pool",
-                    "name": "overprovisionfactor",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool path",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the storage pool capabilities",
-                    "name": "storagecapabilities",
-                    "type": "map"
-                },
-                {
-                    "description": "IOPS CloudStack can provision from this storage pool",
-                    "name": "capacityiops",
-                    "type": "long"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
+            "name": "rebootSystemVm",
             "description": "Reboots a system VM.",
             "isasync": true,
-            "name": "rebootSystemVm",
+            "related": "changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,stopSystemVm,startSystemVm,destroySystemVm,listSystemVms",
             "params": [
                 {
-                    "description": "The ID of the system virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "destroySystemVm,changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,rebootSystemVm,listSystemVms,stopSystemVm,startSystemVm",
+                    "description": "The ID of the system virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,rebootSystemVm,stopSystemVm,startSystemVm,destroySystemVm,listSystemVms"
                 }
             ],
-            "related": "destroySystemVm,changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,listSystemVms,stopSystemVm,startSystemVm",
             "response": [
                 {
-                    "description": "the template ID for the system VM",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the system VM",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the system VM",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the system VM",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the system VM",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the system VM",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the private IP address for the system VM",
-                    "name": "privateip",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the system VM",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of active console sessions for the console proxy system vm",
-                    "name": "activeviewersessions",
-                    "type": "integer"
-                },
-                {
-                    "description": "the network domain for the system VM",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the system VM",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the system VM type",
                     "name": "systemvmtype",
+                    "description": "the system VM type",
                     "type": "string"
                 },
                 {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
+                    "name": "templateid",
+                    "description": "the template ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the system VM",
-                    "name": "id",
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the system VM",
-                    "name": "name",
+                    "name": "zonename",
+                    "description": "the Zone name for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the hostname for the system VM",
-                    "name": "hostname",
-                    "type": "string"
+                    "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
+                    "type": "integer"
                 },
                 {
-                    "description": "the date and time the system VM was created",
                     "name": "created",
+                    "description": "the date and time the system VM was created",
                     "type": "date"
                 },
                 {
-                    "description": "the private MAC address for the system VM",
-                    "name": "privatemacaddress",
+                    "name": "gateway",
+                    "description": "the gateway for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
+                    "name": "hostid",
+                    "description": "the host ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the public IP address for the system VM",
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privateip",
+                    "description": "the private IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "publicip",
+                    "description": "the public IP address for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
+                    "name": "networkdomain",
+                    "description": "the network domain for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
+                },
+                {
+                    "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Import LDAP users",
-            "isasync": false,
             "name": "importLdapUsers",
+            "description": "Import LDAP users",
+            "since": "4.3.0",
+            "isasync": false,
+            "related": "searchLdap,listLdapUsers",
             "params": [
                 {
-                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
-                    "length": 255,
-                    "name": "timezone",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Specifies the domain to which the ldap users are to be imported. If no domain is specified, a domain will created using group parameter. If the group is also not specified, a domain name based on the OU information will be created. If no OU hierarchy exists, will be defaulted to ROOT domain",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain admin",
-                    "length": 255,
-                    "name": "accounttype",
-                    "required": false,
-                    "type": "short"
-                },
-                {
-                    "description": "Creates the account under the specified role.",
-                    "length": 255,
-                    "name": "roleid",
-                    "related": "listRoles,createRole",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Specifies the group name from which the ldap users are to be imported. If no group is specified, all the users will be imported.",
-                    "length": 255,
-                    "name": "group",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "details for account used to store specific parameters",
-                    "length": 255,
                     "name": "accountdetails",
-                    "required": false,
-                    "type": "map"
+                    "description": "details for account used to store specific parameters",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "roleid",
+                    "description": "Creates the account under the specified role.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "keyword",
                     "required": false,
-                    "type": "string"
+                    "related": "createRole,listRoles,updateRole"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "group",
+                    "description": "Specifies the group name from which the ldap users are to be imported. If no group is specified, all the users will be imported.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "timezone",
+                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accounttype",
+                    "description": "Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain admin",
+                    "type": "short",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "Specifies the domain to which the ldap users are to be imported. If no domain is specified, a domain will created using group parameter. If the group is also not specified, a domain name based on the OU information will be created. If no OU hierarchy exists, will be defaulted to ROOT domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "searchLdap,listLdapUsers",
             "response": [
                 {
-                    "description": "The user's lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's domain",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's principle",
-                    "name": "principal",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's email",
                     "name": "email",
+                    "description": "The user's email",
                     "type": "string"
                 },
                 {
-                    "description": "The user's firstname",
                     "name": "firstname",
+                    "description": "The user's firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "lastname",
+                    "description": "The user's lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "principal",
+                    "description": "The user's principle",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "The user's username",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "The user's domain",
                     "type": "string"
                 }
-            ],
-            "since": "4.3.0"
+            ]
         },
         {
+            "name": "listNetworks",
             "description": "Lists all available networks.",
             "isasync": false,
-            "name": "listNetworks",
+            "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork",
             "params": [
                 {
-                    "description": "list objects by project",
-                    "length": 255,
                     "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
                 },
                 {
-                    "description": "list networks supporting certain services",
-                    "length": 255,
-                    "name": "supportedservices",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the zone ID of the network",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "type of the traffic",
-                    "length": 255,
-                    "name": "traffictype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list networks available for VM deployment",
-                    "length": 255,
-                    "name": "canusefordeploy",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network belongs to VPC",
-                    "length": 255,
-                    "name": "forvpc",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list networks by ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,listNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "displaynetwork",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list networks by ACL (access control list) type. Supported values are account and domain",
-                    "length": 255,
-                    "name": "acltype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the network. Supported values are: isolated and shared",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "List networks by VPC",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,updateVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if need to list only networks which support specifying IP ranges",
-                    "length": 255,
-                    "name": "specifyipranges",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list networks by physical network id",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork,listPhysicalNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list networks by restartRequired",
-                    "length": 255,
-                    "name": "restartrequired",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "length": 255,
                     "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "supportedservices",
+                    "description": "list networks supporting certain services",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "forvpc",
+                    "description": "the network belongs to VPC",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list networks by ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "listNetworks,listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID of the network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "acltype",
+                    "description": "list networks by ACL (access control list) type. Supported values are account and domain",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "list networks by physical network id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updatePhysicalNetwork,listPhysicalNetworks,createPhysicalNetwork"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "List networks by VPC",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateVPC,createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "type of the traffic",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network. Supported values are: isolated and shared",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if need to list only networks which support specifying IP ranges",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "list networks by restartRequired",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "canusefordeploy",
+                    "description": "list networks available for VM deployment",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
             "response": [
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                    "name": "zonesnetworkspans",
-                    "type": "set"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
                     "type": "boolean"
                 },
                 {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
                     "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
                     "type": "string"
                 },
                 {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
                     "type": "boolean"
                 },
                 {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "VPC the network belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of services",
                     "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the service provider name",
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
                             "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
                                     "name": "id",
+                                    "description": "uuid of the network provider",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
                                 },
                                 {
-                                    "description": "services for this provider",
                                     "name": "servicelist",
+                                    "description": "services for this provider",
                                     "type": "list"
                                 },
                                 {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
                                 },
                                 {
-                                    "description": "state of the network provider",
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "the list of capabilities",
                             "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the network's gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "related",
+                    "description": "related to what other network configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "externalid",
+                    "description": "The external id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
                         },
                         {
-                            "description": "the service name",
-                            "name": "name",
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
                     "name": "physicalnetworkid",
+                    "description": "the physical network id",
                     "type": "string"
                 },
                 {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
                     "type": "string"
                 },
                 {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
                     "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if network can span multiple zones",
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
                     "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if users from subdomains can access the domain level network",
+                    "name": "netmask",
+                    "description": "the network's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "type": "string"
+                },
+                {
                     "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
                     "type": "boolean"
                 },
                 {
-                    "description": "the network domain",
-                    "name": "networkdomain",
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
                     "type": "string"
                 },
                 {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
+                    "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                    "type": "set"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the network",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listDedicatedZones",
             "description": "List dedicated zones.",
             "isasync": false,
-            "name": "listDedicatedZones",
+            "related": "dedicateZone",
             "params": [
                 {
-                    "description": "list dedicated zones by affinity group",
-                    "length": 255,
-                    "name": "affinitygroupid",
-                    "related": "createAffinityGroup,listAffinityGroups",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the domain associated with the zone",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
+                    "description": "the ID of the domain associated with the zone",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the account associated with the zone. Must be used with domainId.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "the name of the account associated with the zone. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ID of the Zone",
+                    "name": "affinitygroupid",
+                    "description": "list dedicated zones by affinity group",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listAffinityGroups,createAffinityGroup"
+                },
+                {
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
+                    "description": "the ID of the Zone",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "keyword",
                     "required": false,
-                    "type": "string"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
+                    "name": "pagesize",
                     "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "dedicateZone",
             "response": [
                 {
-                    "description": "the ID of the dedicated resource",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Dedication Affinity Group ID of the zone",
-                    "name": "affinitygroupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Account Id to which the Zone is dedicated",
                     "name": "accountid",
+                    "description": "the Account Id to which the Zone is dedicated",
                     "type": "string"
                 },
                 {
-                    "description": "the Name of the Zone",
-                    "name": "zonename",
+                    "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the zone",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the Zone",
-                    "name": "zoneid",
+                    "name": "id",
+                    "description": "the ID of the dedicated resource",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID to which the Zone is dedicated",
                     "name": "domainid",
+                    "description": "the domain ID to which the Zone is dedicated",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Name of the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the Zone",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listElastistorPool",
             "description": "Lists the pools of elastistor",
             "isasync": false,
-            "name": "listElastistorPool",
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the Pool",
-                    "length": 255,
                     "name": "id",
-                    "required": false,
-                    "type": "long"
+                    "description": "the ID of the Pool",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the current available space of the pool",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "controller of the pool",
-                    "name": "controllerid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the storage pool",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the storage pool",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "available iops of the pool",
                     "name": "maxiops",
+                    "description": "available iops of the pool",
                     "type": "long"
                 },
                 {
-                    "description": "default gateway of the pool",
+                    "name": "size",
+                    "description": "the current available space of the pool",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the storage pool",
+                    "type": "string"
+                },
+                {
                     "name": "gateway",
+                    "description": "default gateway of the pool",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "controllerid",
+                    "description": "controller of the pool",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates firewall rule ",
-            "isasync": true,
             "name": "updateFirewallRule",
+            "description": "Updates firewall rule ",
+            "since": "4.4",
+            "isasync": true,
+            "related": "createFirewallRule,updateEgressFirewallRule,createEgressFirewallRule,listFirewallRules,listEgressFirewallRules",
             "params": [
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the ID of the firewall rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "listIpForwardingRules,createIpForwardingRule,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
+                    "description": "the ID of the firewall rule",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createIpForwardingRule,updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "listFirewallRules,createFirewallRule,createEgressFirewallRule,updateEgressFirewallRule,listEgressFirewallRules",
             "response": [
                 {
-                    "description": "is rule for display to the regular user",
+                    "name": "destcidrlist",
+                    "description": "the cidr list to forward traffic to",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the public ip address for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the firewall rule",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the starting port of firewall rule's port range",
-                    "name": "startport",
-                    "type": "integer"
-                },
-                {
-                    "description": "the public ip address for the firewall rule",
-                    "name": "ipaddress",
+                    "name": "state",
+                    "description": "the state of the rule",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with the rule",
+                    "name": "networkid",
+                    "description": "the network id of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the firewall rule",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
                             "name": "resourcetype",
+                            "description": "resource type",
                             "type": "string"
                         },
                         {
-                            "description": "the account associated with the tag",
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
                             "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
                             "name": "resourceid",
+                            "description": "id of the resource",
                             "type": "string"
                         },
                         {
-                            "description": "the project id the tag belongs to",
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
                             "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the network id of the firewall rule",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the firewall rule",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the firewall rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of firewall rule's port range",
-                    "name": "endport",
-                    "type": "integer"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the public ip address id for the firewall rule",
-                    "name": "ipaddressid",
-                    "type": "string"
+                    ]
                 }
-            ],
-            "since": "4.4"
+            ]
         },
         {
-            "description": "Return true if the plugin is enabled",
-            "isasync": false,
             "name": "quotaIsEnabled",
+            "description": "Return true if the plugin is enabled",
+            "since": "4.7.0",
+            "isasync": false,
+            "related": "",
             "params": [
 
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "is quota service enabled",
                     "name": "isenabled",
+                    "description": "is quota service enabled",
                     "type": "boolean"
                 }
-            ],
-            "since": "4.7.0"
+            ]
         },
         {
-            "description": "lists SRX firewall devices in a physical network",
-            "isasync": false,
-            "name": "listSrxFirewalls",
+            "name": "deleteAccountFromProject",
+            "description": "Deletes account from the project",
+            "since": "3.0.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "List by keyword",
+                    "name": "projectid",
+                    "description": "ID of the project to remove the account from",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "required": true,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
                 },
                 {
-                    "description": "the Physical Network ID",
+                    "name": "account",
+                    "description": "name of the account to be removed from the project",
+                    "type": "string",
                     "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork,listPhysicalNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "SRX firewall device ID",
-                    "length": 255,
-                    "name": "fwdeviceid",
-                    "related": "listSrxFirewalls,addSrxFirewall,configureSrxFirewall",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": true
                 }
             ],
-            "related": "addSrxFirewall,configureSrxFirewall",
             "response": [
                 {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the physical network to which this SRX firewall belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private security zone of the external firewall",
-                    "name": "privatezone",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "fwdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "fwdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the SRX firewall",
-                    "name": "fwdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device capacity",
-                    "name": "fwdevicecapacity",
-                    "type": "long"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listHypervisors",
             "description": "List hypervisors",
             "isasync": false,
-            "name": "listHypervisors",
+            "related": "",
             "params": [
                 {
-                    "description": "the zone id for listing hypervisors.",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the zone id for listing hypervisors.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Hypervisor name",
                     "name": "name",
+                    "description": "Hypervisor name",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes account from the project",
-            "isasync": true,
-            "name": "deleteAccountFromProject",
-            "params": [
-                {
-                    "description": "ID of the project to remove the account from",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of the account to be removed from the project",
-                    "length": 255,
-                    "name": "account",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
+            "name": "getSolidFireVolumeAccessGroupId",
             "description": "Get the SF Volume Access Group ID",
             "isasync": false,
-            "name": "getSolidFireVolumeAccessGroupId",
+            "related": "",
             "params": [
                 {
-                    "description": "Cluster UUID",
+                    "name": "storageid",
+                    "description": "Storage Pool UUID",
+                    "type": "string",
                     "length": 255,
-                    "name": "clusterid",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "Storage Pool UUID",
+                    "name": "clusterid",
+                    "description": "Cluster UUID",
+                    "type": "string",
                     "length": 255,
-                    "name": "storageid",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "SolidFire Volume Access Group Id",
                     "name": "solidFireVolumeAccessGroupId",
+                    "description": "SolidFire Volume Access Group Id",
                     "type": "long"
                 }
             ]
         },
         {
-            "description": "Updates the information about Guest OS",
-            "isasync": true,
             "name": "updateGuestOs",
+            "description": "Updates the information about Guest OS",
+            "since": "4.4.0",
+            "isasync": true,
+            "related": "listOsTypes,addGuestOs",
             "params": [
                 {
-                    "description": "UUID of the Guest OS",
+                    "name": "details",
+                    "description": "Map of (key/value pairs)",
+                    "type": "map",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateGuestOs,addGuestOs,listOsTypes",
-                    "required": true,
-                    "type": "uuid"
+                    "required": true
                 },
                 {
-                    "description": "Unique display name for Guest OS",
+                    "name": "id",
+                    "description": "UUID of the Guest OS",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "osdisplayname",
                     "required": true,
-                    "type": "string"
+                    "related": "updateGuestOs,listOsTypes,addGuestOs"
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "Unique display name for Guest OS",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "addGuestOs,listOsTypes",
             "response": [
                 {
-                    "description": "the ID of the OS type",
                     "name": "id",
+                    "description": "the ID of the OS type",
                     "type": "string"
                 },
                 {
-                    "description": "the name/description of the OS type",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "is the guest OS user defined",
                     "name": "isuserdefined",
+                    "description": "is the guest OS user defined",
+                    "type": "boolean"
+                },
+                {
+                    "name": "oscategoryid",
+                    "description": "the ID of the OS category",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the OS category",
-                    "name": "oscategoryid",
+                    "name": "description",
+                    "description": "the name/description of the OS type",
                     "type": "string"
                 }
-            ],
-            "since": "4.4.0"
+            ]
         },
         {
+            "name": "updateResourceLimit",
             "description": "Updates resource limits for an account or domain.",
             "isasync": false,
-            "name": "updateResourceLimit",
+            "related": "listResourceLimits",
             "params": [
                 {
-                    "description": "Update resource limits for project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Update resource for a specified account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "  Maximum resource limit.",
-                    "length": 255,
-                    "name": "max",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "Update resource limits for all accounts in specified domain. If used with the account parameter, updates resource limits for a specified account in specified domain.",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
+                    "description": "Update resource limits for all accounts in specified domain. If used with the account parameter, updates resource limits for a specified account in specified domain.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 },
                 {
-                    "description": "Type of resource to update. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ",
-                    "length": 255,
                     "name": "resourcetype",
-                    "required": true,
-                    "type": "integer"
+                    "description": "Type of resource to update. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "max",
+                    "description": "  Maximum resource limit.",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "Update resource limits for project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "account",
+                    "description": "Update resource for a specified account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listResourceLimits",
             "response": [
                 {
-                    "description": "the project id of the resource limit",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the resource limit",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the resource limit",
                     "name": "project",
+                    "description": "the project name of the resource limit",
                     "type": "string"
                 },
                 {
-                    "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.",
-                    "name": "resourcetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the maximum number of the resource. A -1 means the resource currently has no limit.",
                     "name": "max",
+                    "description": "the maximum number of the resource. A -1 means the resource currently has no limit.",
                     "type": "long"
                 },
                 {
-                    "description": "the domain name of the resource limit",
-                    "name": "domain",
+                    "name": "account",
+                    "description": "the account of the resource limit",
                     "type": "string"
                 },
                 {
-                    "description": "the account of the resource limit",
-                    "name": "account",
+                    "name": "resourcetypename",
+                    "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the resource limit",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the resource limit",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the resource limit",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteStaticRoute",
             "description": "Deletes a static route",
             "isasync": true,
-            "name": "deleteStaticRoute",
             "params": [
                 {
-                    "description": "the ID of the static route",
-                    "length": 255,
                     "name": "id",
-                    "related": "createStaticRoute,listStaticRoutes",
+                    "description": "the ID of the static route",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listStaticRoutes,createStaticRoute"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists hosts metrics",
-            "isasync": false,
             "name": "listHostsMetrics",
+            "description": "Lists hosts metrics",
+            "since": "4.9.3",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]",
-                    "length": 255,
-                    "name": "outofbandmanagementpowerstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the host",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]",
-                    "length": 255,
-                    "name": "resourcestate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,restoreVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the host type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the host",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the Zone ID for the host",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list hosts for which out-of-band management is enabled",
-                    "length": 255,
-                    "name": "outofbandmanagementenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the host",
-                    "length": 255,
                     "name": "podid",
-                    "related": "listPods,updatePod",
+                    "description": "the Pod ID for the host",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
                 },
                 {
-                    "description": "lists hosts existing in particular cluster",
+                    "name": "outofbandmanagementenabled",
+                    "description": "list hosts for which out-of-band management is enabled",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster,listClusters,updateCluster",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "if true, list only hosts dedicated to HA",
-                    "length": 255,
-                    "name": "hahost",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the host",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "cancelHostMaintenance,addBaremetalHost,updateHost,prepareHostForMaintenance,reconnectHost,addHost"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hahost",
+                    "description": "if true, list only hosts dedicated to HA",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "clusterid",
+                    "description": "lists hosts existing in particular cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,listClusters,updateCluster"
+                },
+                {
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,restoreVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "details",
+                    "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "outofbandmanagementpowerstate",
+                    "description": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the total cpu used in GiB",
-                    "name": "memoryusedgb",
-                    "type": "string"
-                },
-                {
-                    "description": "cpu allocated notification threshold exceeded",
-                    "name": "cpuallocatedthreshold",
+                    "name": "memorydisablethreshold",
+                    "description": "memory usage disable threshold exceeded",
                     "type": "boolean"
                 },
                 {
-                    "description": "the total cpu capacity in Ghz",
-                    "name": "cputotalghz",
-                    "type": "string"
-                },
-                {
-                    "description": "memory usage notification threshold exceeded",
-                    "name": "memorythreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "memory allocated notification threshold exceeded",
-                    "name": "memoryallocatedthreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total cpu allocated in Ghz",
                     "name": "cpuallocatedghz",
+                    "description": "the total cpu allocated in Ghz",
                     "type": "string"
                 },
                 {
-                    "description": "memory allocated disable threshold exceeded",
-                    "name": "memoryallocateddisablethreshold",
+                    "name": "memoryallocatedthreshold",
+                    "description": "memory allocated notification threshold exceeded",
                     "type": "boolean"
                 },
                 {
-                    "description": "cpu usage notification threshold exceeded",
-                    "name": "cputhreshold",
+                    "name": "cpuallocatedthreshold",
+                    "description": "cpu allocated notification threshold exceeded",
                     "type": "boolean"
                 },
                 {
-                    "description": "instances on the host",
-                    "name": "instances",
-                    "type": "string"
+                    "name": "memorythreshold",
+                    "description": "memory usage notification threshold exceeded",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the total cpu capacity in GiB",
-                    "name": "memorytotalgb",
-                    "type": "string"
-                },
-                {
-                    "description": "network write in GiB",
                     "name": "networkwrite",
+                    "description": "network write in GiB",
                     "type": "string"
                 },
                 {
-                    "description": "cpu allocated disable threshold exceeded",
-                    "name": "cpuallocateddisablethreshold",
+                    "name": "networkread",
+                    "description": "network read in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "cpudisablethreshold",
+                    "description": "cpu usage disable threshold exceeded",
                     "type": "boolean"
                 },
                 {
-                    "description": "the total cpu used in Ghz",
+                    "name": "cpuallocateddisablethreshold",
+                    "description": "cpu allocated disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
                     "name": "cpuusedghz",
+                    "description": "the total cpu used in Ghz",
                     "type": "string"
                 },
                 {
-                    "description": "network read in GiB",
-                    "name": "networkread",
+                    "name": "cputhreshold",
+                    "description": "cpu usage notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memoryallocatedgb",
+                    "description": "the total cpu allocated in GiB",
                     "type": "string"
                 },
                 {
-                    "description": "out-of-band management power state",
+                    "name": "memoryallocateddisablethreshold",
+                    "description": "memory allocated disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memorytotalgb",
+                    "description": "the total cpu capacity in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "instances",
+                    "description": "instances on the host",
+                    "type": "string"
+                },
+                {
                     "name": "powerstate",
+                    "description": "out-of-band management power state",
                     "type": "powerstate"
                 },
                 {
-                    "description": "the total cpu allocated in GiB",
-                    "name": "memoryallocatedgb",
+                    "name": "cputotalghz",
+                    "description": "the total cpu capacity in Ghz",
                     "type": "string"
                 },
                 {
-                    "description": "memory usage disable threshold exceeded",
-                    "name": "memorydisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "cpu usage disable threshold exceeded",
-                    "name": "cpudisablethreshold",
-                    "type": "boolean"
+                    "name": "memoryusedgb",
+                    "description": "the total cpu used in GiB",
+                    "type": "string"
                 }
-            ],
-            "since": "4.9.3"
+            ]
         },
         {
+            "name": "releaseDedicatedPod",
             "description": "Release the dedication for the pod",
             "isasync": true,
-            "name": "releaseDedicatedPod",
             "params": [
                 {
-                    "description": "the ID of the Pod",
-                    "length": 255,
                     "name": "podid",
-                    "related": "listPods,updatePod",
+                    "description": "the ID of the Pod",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listAffinityGroups",
             "description": "Lists affinity groups",
             "isasync": false,
-            "name": "listAffinityGroups",
+            "related": "createAffinityGroup",
             "params": [
                 {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list the affinity group by the ID provided",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createAffinityGroup,listAffinityGroups",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
                     "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "lists affinity groups by type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists affinity groups by virtual machine ID",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,restoreVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "lists affinity groups by name",
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "name",
+                    "description": "lists affinity groups by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list the affinity group by the ID provided",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listAffinityGroups,createAffinityGroup"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "lists affinity groups by virtual machine ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,restoreVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "lists affinity groups by type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
                 }
             ],
-            "related": "createAffinityGroup",
             "response": [
                 {
-                    "description": "virtual machine IDs associated with this affinity group",
+                    "name": "description",
+                    "description": "the description of the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the affinity group",
+                    "type": "string"
+                },
+                {
                     "name": "virtualmachineIds",
+                    "description": "virtual machine IDs associated with this affinity group",
                     "type": "list"
                 },
                 {
-                    "description": "the domain ID of the affinity group",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the affinity group",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the affinity group",
                     "name": "name",
+                    "description": "the name of the affinity group",
                     "type": "string"
                 },
                 {
-                    "description": "the type of the affinity group",
-                    "name": "type",
+                    "name": "domainid",
+                    "description": "the domain ID of the affinity group",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the affinity group",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the account owning the affinity group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the affinity group",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project ID of the affinity group",
                     "name": "projectid",
+                    "description": "the project ID of the affinity group",
                     "type": "string"
                 },
                 {
-                    "description": "the description of the affinity group",
-                    "name": "description",
+                    "name": "id",
+                    "description": "the ID of the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the affinity group",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "registerSSHKeyPair",
             "description": "Register a public key in a keypair under a certain name",
             "isasync": false,
-            "name": "registerSSHKeyPair",
+            "related": "listSSHKeyPairs",
             "params": [
                 {
-                    "description": "an optional project for the ssh key",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Public key material of the keypair",
-                    "length": 5120,
-                    "name": "publickey",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Name of the keypair",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "Name of the keypair",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "an optional account for the ssh key. Must be used with domainId.",
-                    "length": 255,
                     "name": "account",
+                    "description": "an optional account for the ssh key. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "an optional project for the ssh key",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "publickey",
+                    "description": "Public key material of the keypair",
+                    "type": "string",
+                    "length": 5120,
+                    "required": true
                 }
             ],
-            "related": "listSSHKeyPairs",
             "response": [
                 {
-                    "description": "Name of the keypair",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the keypair owner",
                     "name": "domainid",
+                    "description": "the domain id of the keypair owner",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the keypair owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the keypair",
                     "name": "account",
+                    "description": "the owner of the keypair",
                     "type": "string"
                 },
                 {
-                    "description": "Fingerprint of the public key",
                     "name": "fingerprint",
+                    "description": "Fingerprint of the public key",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the keypair owner",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "Name of the keypair",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteRemoteAccessVpn",
             "description": "Destroys a l2tp/ipsec remote access vpn",
             "isasync": true,
-            "name": "deleteRemoteAccessVpn",
             "params": [
                 {
-                    "description": "public ip address id of the vpn server",
-                    "length": 255,
                     "name": "publicipid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
+                    "description": "public ip address id of the vpn server",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates network ACL list",
-            "isasync": true,
             "name": "updateNetworkACLList",
+            "description": "Updates network ACL list",
+            "since": "4.4",
+            "isasync": true,
             "params": [
                 {
-                    "description": "the ID of the network ACL",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createNetworkACLList,listNetworkACLLists",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
                     "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "an optional field, whether to the display the list to the end user or not",
+                    "name": "id",
+                    "description": "the ID of the network ACL",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "createNetworkACLList,listNetworkACLLists"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the list to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
-            ],
-            "since": "4.4"
+            ]
         },
         {
+            "name": "deleteNiciraNvpDevice",
             "description": " delete a nicira nvp device",
             "isasync": true,
-            "name": "deleteNiciraNvpDevice",
             "params": [
                 {
-                    "description": "Nicira device ID",
-                    "length": 255,
                     "name": "nvpdeviceid",
-                    "related": "listNiciraNvpDevices,addNiciraNvpDevice",
+                    "description": "Nicira device ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listNiciraNvpDevices,addNiciraNvpDevice"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Restore a VM to original template/ISO or new template/ISO",
-            "isasync": true,
             "name": "restoreVirtualMachine",
+            "description": "Restore a VM to original template/ISO or new template/ISO",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "Virtual Machine ID",
-                    "length": 255,
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,restoreVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "Virtual Machine ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,restoreVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "an optional template Id to restore vm from the new template. This can be an ISO id in case of restore vm deployed using ISO",
-                    "length": 255,
                     "name": "templateid",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,listTemplates,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
+                    "description": "an optional template Id to restore vm from the new template. This can be an ISO id in case of restore vm deployed using ISO",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 }
             ],
-            "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
+                    "name": "project",
+                    "description": "the project name of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the project id of the vm",
                     "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
                     "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
                             "name": "id",
+                            "description": "the ID of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
                             "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
                             "type": "list"
                         },
                         {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the traffic type of the nic",
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
                             "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
                     "type": "long"
                 },
                 {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
                     "type": "long"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
                     "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
                             "name": "id",
+                            "description": "the ID of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
                             "name": "account",
+                            "description": "the account owning the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
                             "name": "project",
+                            "description": "the project name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "virtual machine IDs associated with this affinity group",
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
                             "type": "list"
                         },
                         {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the project name of the vm",
-                    "name": "project",
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
                 },
                 {
 
                 },
                 {
-                    "description": "the date when this virtual machine was created",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date when this virtual machine was created",
                     "type": "date"
                 },
                 {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the domain in which the virtual machine exists",
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
                     "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
                     "type": "string"
                 },
                 {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
                     "type": "integer"
                 },
                 {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
                     "type": "string"
                 },
                 {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
                     "type": "string"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "deleteEvents",
             "description": "Delete one or more events.",
             "isasync": false,
-            "name": "deleteEvents",
             "params": [
                 {
-                    "description": "delete by event type",
-                    "length": 255,
                     "name": "type",
-                    "required": false,
-                    "type": "string"
+                    "description": "delete by event type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "start date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
                     "name": "startdate",
-                    "required": false,
-                    "type": "date"
+                    "description": "start date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "end date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
-                    "name": "enddate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "the IDs of the events",
-                    "length": 255,
                     "name": "ids",
-                    "related": "listEvents",
+                    "description": "the IDs of the events",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "listEvents"
+                },
+                {
+                    "name": "enddate",
+                    "description": "end date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listUcsBlades",
             "description": "List ucs blades",
             "isasync": false,
-            "name": "listUcsBlades",
+            "related": "associateUcsProfileToBlade",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "ucs manager id",
-                    "length": 255,
                     "name": "ucsmanagerid",
-                    "related": "addUcsManager,listUcsManagers",
+                    "description": "ucs manager id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listUcsManagers,addUcsManager"
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "associateUcsProfileToBlade",
             "response": [
                 {
-                    "description": "ucs blade id",
                     "name": "id",
+                    "description": "ucs blade id",
                     "type": "string"
                 },
                 {
-                    "description": "ucs blade dn",
                     "name": "bladedn",
+                    "description": "ucs blade dn",
                     "type": "string"
                 },
                 {
-                    "description": "cloudstack host id this blade associates to",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "associated ucs profile dn",
-                    "name": "profiledn",
-                    "type": "string"
-                },
-                {
-                    "description": "ucs manager id",
                     "name": "ucsmanagerid",
+                    "description": "ucs manager id",
+                    "type": "string"
+                },
+                {
+                    "name": "profiledn",
+                    "description": "associated ucs profile dn",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "cloudstack host id this blade associates to",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "notifyBaremetalProvisionDone",
             "description": "Notify provision has been done on a host. This api is for baremetal virtual router service, not for end user",
             "isasync": true,
-            "name": "notifyBaremetalProvisionDone",
             "params": [
                 {
-                    "description": "mac of the nic used for provision",
-                    "length": 255,
                     "name": "mac",
-                    "required": true,
-                    "type": "object"
+                    "description": "mac of the nic used for provision",
+                    "type": "object",
+                    "length": 255,
+                    "required": true
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "getVolumeSnapshotDetails",
             "description": "Get Volume Snapshot Details",
             "isasync": false,
-            "name": "getVolumeSnapshotDetails",
+            "related": "getVolumeiScsiName",
             "params": [
                 {
-                    "description": "CloudStack Snapshot UUID",
-                    "length": 255,
                     "name": "snapshotid",
-                    "required": true,
-                    "type": "string"
+                    "description": "CloudStack Snapshot UUID",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "getVolumeiScsiName",
             "response": [
                 {
-                    "description": "Volume iSCSI Name",
                     "name": "volumeiScsiName",
+                    "description": "Volume iSCSI Name",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteIso",
             "description": "Deletes an ISO file.",
             "isasync": true,
-            "name": "deleteIso",
             "params": [
                 {
-                    "description": "the ID of the zone of the ISO file. If not specified, the ISO will be deleted from all the zones",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the ID of the zone of the ISO file. If not specified, the ISO will be deleted from all the zones",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
+                    "name": "id",
                     "description": "the ID of the ISO file",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,listTemplates,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
                     "required": true,
-                    "type": "uuid"
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes an external firewall appliance.",
-            "isasync": false,
-            "name": "deleteExternalFirewall",
-            "params": [
-                {
-                    "description": "Id of the external firewall appliance.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
+            "name": "updateHost",
             "description": "Updates a host.",
             "isasync": false,
-            "name": "updateHost",
+            "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost",
             "params": [
                 {
-                    "description": "the id of Os category to update the host with",
-                    "length": 255,
-                    "name": "oscategoryid",
-                    "related": "listOsCategories",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Change resource state of host, valid values are [Enable, Disable]. Operation may failed if host in states not allowing Enable/Disable",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host to update",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,updateHost,cancelHostMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list of tags to be added to the host",
-                    "length": 255,
                     "name": "hosttags",
-                    "required": false,
-                    "type": "list"
+                    "description": "list of tags to be added to the host",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the new uri for the secondary storage: nfs://host/path",
+                    "name": "oscategoryid",
+                    "description": "the id of Os category to update the host with",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "url",
                     "required": false,
-                    "type": "string"
+                    "related": "listOsCategories"
+                },
+                {
+                    "name": "url",
+                    "description": "the new uri for the secondary storage: nfs://host/path",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "annotation",
+                    "description": "Add an annotation to this host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.11"
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "Change resource state of host, valid values are [Enable, Disable]. Operation may failed if host in states not allowing Enable/Disable",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the host to update",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "cancelHostMaintenance,addBaremetalHost,updateHost,prepareHostForMaintenance,reconnectHost,addHost"
                 }
             ],
-            "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
             "response": [
                 {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
-                    "type": "string"
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
                 },
                 {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "GPU cards present in the host",
-                    "name": "gpugroup",
-                    "response": [
-                        {
-                            "description": "GPU cards present in the host",
-                            "name": "gpugroupname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of enabled vGPUs",
-                            "name": "vgpu",
-                            "response": [
-                                {
-                                    "description": "Maximum Y resolution per display",
-                                    "name": "maxresolutiony",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
-                                    "name": "maxcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Model Name of vGPU",
-                                    "name": "vgputype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
-                                    "name": "remainingcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Video RAM for this vGPU type",
-                                    "name": "videoram",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
-                                    "name": "maxvgpuperpgpu",
-                                    "type": "long"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host",
                     "name": "name",
+                    "description": "the name of the host",
                     "type": "string"
                 },
                 {
-                    "description": "events available for the host",
-                    "name": "events",
+                    "name": "version",
+                    "description": "the host version",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the host's CPU currently used",
-                    "name": "cpuused",
+                    "name": "zonename",
+                    "description": "the Zone name of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the host out-of-band management information",
-                    "name": "outofbandmanagement",
-                    "type": "outofbandmanagementresponse"
-                },
-                {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the host type",
-                    "name": "type",
-                    "type": "type"
-                },
-                {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
-                    "type": "date"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the state of the host",
                     "name": "state",
+                    "description": "the state of the host",
                     "type": "status"
                 },
                 {
-                    "description": "the OS category name of the host",
+                    "name": "cpusockets",
+                    "description": "the number of CPU sockets on the host",
+                    "type": "integer"
+                },
+                {
                     "name": "oscategoryname",
+                    "description": "the OS category name of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
+                    "name": "hostha",
+                    "description": "the host HA information information",
+                    "type": "hostharesponse"
                 },
                 {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's memory currently used",
-                    "name": "memoryused",
-                    "type": "long"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "comma-separated list of tags for the host",
                     "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
                     "type": "string"
                 },
                 {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "the resource state of the host",
+                    "type": "string"
+                },
+                {
                     "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
+                    "name": "annotation",
+                    "description": "the last annotation set on this host by an admin",
                     "type": "string"
                 },
                 {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
+                    "name": "id",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "managementserverid",
+                    "description": "the management server ID of the host",
                     "type": "long"
                 },
                 {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
+                    "name": "gpugroup",
+                    "description": "GPU cards present in the host",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "vgpu",
+                            "description": "the list of enabled vGPUs",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "videoram",
+                                    "description": "Video RAM for this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxvgpuperpgpu",
+                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "remainingcapacity",
+                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxheads",
+                                    "description": "Maximum displays per user",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "vgputype",
+                                    "description": "Model Name of vGPU",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "maxresolutionx",
+                                    "description": "Maximum X resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxcapacity",
+                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutiony",
+                                    "description": "Maximum Y resolution per display",
+                                    "type": "long"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "gpugroupname",
+                            "description": "GPU cards present in the host",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
                     "type": "string"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
+                    "type": "long"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "capabilities",
+                    "description": "capabilities of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "outofbandmanagement",
+                    "description": "the host out-of-band management information",
+                    "type": "outofbandmanagementresponse"
+                },
+                {
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
+                    "type": "long"
+                },
+                {
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "type"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Host details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "username",
+                    "description": "the admin that annotated this host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "averageload",
+                    "description": "the cpu average load on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor",
+                    "type": "string"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the host hypervisor",
+                    "type": "hypervisortype"
+                },
+                {
+                    "name": "events",
+                    "description": "events available for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
+                    "type": "long"
+                },
+                {
+                    "name": "lastannotated",
+                    "description": "the last time this host was annotated",
+                    "type": "date"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "createEgressFirewallRule",
             "description": "Creates a egress firewall rule for a given network ",
             "isasync": true,
-            "name": "createEgressFirewallRule",
+            "related": "createFirewallRule,updateEgressFirewallRule,listFirewallRules,listEgressFirewallRules",
             "params": [
                 {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "type of firewallrule: system/user",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "length": 255,
-                    "name": "icmptype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ending port of firewall rule",
-                    "length": 255,
-                    "name": "endport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "length": 255,
-                    "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "length": 255,
-                    "name": "icmpcode",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the network id of the port forwarding rule",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the starting port of firewall rule",
-                    "length": 255,
                     "name": "startport",
+                    "description": "the starting port of firewall rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "destcidrlist",
+                    "description": "the cidr list to forward traffic to",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "type of firewallrule: system/user",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of firewall rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "since": "4.4"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of the port forwarding rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listFirewallRules,createFirewallRule,updateEgressFirewallRule,listEgressFirewallRules",
             "response": [
                 {
-                    "description": "the starting port of firewall rule's port range",
+                    "name": "destcidrlist",
+                    "description": "the cidr list to forward traffic to",
+                    "type": "string"
+                },
+                {
                     "name": "startport",
+                    "description": "the starting port of firewall rule's port range",
                     "type": "integer"
                 },
                 {
-                    "description": "the state of the rule",
-                    "name": "state",
+                    "name": "endport",
+                    "description": "the ending port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of the firewall rule",
                     "type": "string"
                 },
                 {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the firewall rule",
-                    "name": "ipaddressid",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the list of resource tags associated with the rule",
                     "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
                             "name": "key",
+                            "description": "tag key name",
                             "type": "string"
                         },
                         {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
                             "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "type of the icmp message being sent",
                     "name": "icmptype",
+                    "description": "type of the icmp message being sent",
                     "type": "integer"
                 },
                 {
-                    "description": "the protocol of the firewall rule",
                     "name": "protocol",
+                    "description": "the protocol of the firewall rule",
                     "type": "string"
                 },
                 {
-                    "description": "the public ip address for the firewall rule",
-                    "name": "ipaddress",
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the firewall rule",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the firewall rule",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "error code for this icmp message",
                     "name": "icmpcode",
+                    "description": "error code for this icmp message",
                     "type": "integer"
                 },
                 {
-                    "description": "the network id of the firewall rule",
-                    "name": "networkid",
+                    "name": "id",
+                    "description": "the ID of the firewall rule",
                     "type": "string"
                 },
                 {
-                    "description": "the ending port of firewall rule's port range",
-                    "name": "endport",
-                    "type": "integer"
+                    "name": "ipaddress",
+                    "description": "the public ip address for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listVPCOfferings",
             "description": "Lists VPC offerings",
             "isasync": false,
-            "name": "listVPCOfferings",
+            "related": "updateVPCOffering",
             "params": [
                 {
-                    "description": "list VPC offerings supporting certain services",
-                    "length": 255,
                     "name": "supportedservices",
-                    "required": false,
-                    "type": "list"
+                    "description": "list VPC offerings supporting certain services",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "true if need to list only default VPC offerings. Default value is false",
-                    "length": 255,
                     "name": "isdefault",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if need to list only default VPC offerings. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list VPC offerings by display text",
-                    "length": 255,
                     "name": "displaytext",
-                    "required": false,
-                    "type": "string"
+                    "description": "list VPC offerings by display text",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list VPC offerings by state",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list VPC offerings by name",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "list VPC offerings by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list VPC offerings by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVPCOfferings,updateVPCOffering",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "list VPC offerings by state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list VPC offerings by id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listVPCOfferings,updateVPCOffering"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updateVPCOffering",
             "response": [
                 {
-                    "description": " indicated if the offering can support region level vpc",
-                    "name": "supportsregionLevelvpc",
+                    "name": "isdefault",
+                    "description": "true if vpc offering is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "state of the vpc offering. Can be Disabled/Enabled",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of supported services",
                     "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the service provider name",
                             "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the provider name",
                                     "name": "name",
+                                    "description": "the provider name",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "services for this provider",
                                     "name": "servicelist",
+                                    "description": "services for this provider",
                                     "type": "list"
                                 },
                                 {
-                                    "description": "state of the network provider",
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
                                     "name": "state",
+                                    "description": "state of the network provider",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the physical network this belongs to",
                                     "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the destination physical network",
                                     "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "the list of capabilities",
                             "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "the service name",
                             "name": "name",
+                            "description": "the service name",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the name of the vpc offering",
+                    "name": "distributedvpcrouter",
+                    "description": " indicates if the vpc offering supports distributed router for one-hop forwarding",
+                    "type": "boolean"
+                },
+                {
                     "name": "name",
+                    "description": "the name of the vpc offering",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the vpc offering",
+                    "name": "state",
+                    "description": "state of the vpc offering. Can be Disabled/Enabled",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the id of the vpc offering",
                     "type": "string"
                 },
                 {
-                    "description": "the date this vpc offering was created",
+                    "name": "supportsregionLevelvpc",
+                    "description": " indicated if the offering can support region level vpc",
+                    "type": "boolean"
+                },
+                {
                     "name": "created",
+                    "description": "the date this vpc offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "true if vpc offering is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": " indicates if the vpc offering supports distributed router for one-hop forwarding",
-                    "name": "distributedvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an alternate display text of the vpc offering.",
                     "name": "displaytext",
+                    "description": "an alternate display text of the vpc offering.",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "getSolidFireVolumeSize",
             "description": "Get the SF volume size including Hypervisor Snapshot Reserve",
             "isasync": false,
-            "name": "getSolidFireVolumeSize",
+            "related": "",
             "params": [
                 {
-                    "description": "Volume UUID",
-                    "length": 255,
                     "name": "volumeid",
-                    "required": true,
-                    "type": "string"
+                    "description": "Volume UUID",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "SolidFire Volume Size Including Hypervisor Snapshot Reserve",
                     "name": "solidFireVolumeSize",
+                    "description": "SolidFire Volume Size Including Hypervisor Snapshot Reserve",
                     "type": "long"
                 }
             ]
         },
         {
+            "name": "uploadVolume",
             "description": "Uploads a data disk.",
             "isasync": true,
-            "name": "uploadVolume",
+            "related": "listVolumes,detachVolume,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
             "params": [
                 {
-                    "description": "the format for the volume. Possible values include QCOW2, OVA, and VHD.",
-                    "length": 255,
-                    "name": "format",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering. This must be a custom sized offering since during uploadVolume volume size is unknown.",
-                    "length": 255,
-                    "name": "diskofferingid",
-                    "related": "updateDiskOffering,createDiskOffering,listDiskOfferings",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the zone the volume is to be hosted on",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the URL of where the volume is hosted. Possible URL include http:// and https://",
-                    "length": 2048,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Upload volume for the project",
+                    "description": "the ID of the zone the volume is to be hosted on",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 },
                 {
-                    "description": "Image store uuid",
-                    "length": 255,
-                    "name": "imagestoreuuid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the volume",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the MD5 checksum value of this volume",
-                    "length": 255,
                     "name": "checksum",
-                    "required": false,
-                    "type": "string"
+                    "description": "the checksum value of this volume. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{<algorithm>}\", not including the double quotes. In this <algorithm> is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "an optional accountName. Must be used with domainId.",
+                    "name": "url",
+                    "description": "the URL of where the volume is hosted. Possible URL include http:// and https://",
+                    "type": "string",
+                    "length": 2048,
+                    "required": true
+                },
+                {
+                    "name": "projectid",
+                    "description": "Upload volume for the project",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "account",
                     "required": false,
-                    "type": "string"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "imagestoreuuid",
+                    "description": "Image store uuid",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering. This must be a custom sized offering since during uploadVolume volume size is unknown.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDiskOfferings,updateDiskOffering,createDiskOffering"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the volume",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "format",
+                    "description": "the format for the volume. Possible values include QCOW2, OVA, and VHD.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "account",
+                    "description": "an optional accountName. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "detachVolume,listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
             "response": [
                 {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "need quiesce vm or not when taking snapshot",
                     "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
                     "type": "boolean"
                 },
                 {
-                    "description": "the path of the volume",
-                    "name": "path",
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
                     "type": "string"
                 },
                 {
-                    "description": "ID of the disk offering",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
-                    "name": "displayvolume",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date the disk volume was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the volume",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
-                    "type": "date"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the service offering for root disk",
-                    "name": "serviceofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the boolean state of whether the volume is destroyed or not",
-                    "name": "destroyed",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the state of the disk volume",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the virtual machine",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
-                },
-                {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the disk offering",
                     "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
                     "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "size of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "name of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "shared or local storage",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "name of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date the disk volume was created",
+                    "type": "date"
                 }
             ]
         },
         {
+            "name": "listSecurityGroups",
             "description": "Lists security groups",
             "isasync": false,
-            "name": "listSecurityGroups",
+            "related": "createSecurityGroup",
             "params": [
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists security groups by virtual machine id",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "lists security groups by name",
-                    "length": 255,
                     "name": "securitygroupname",
-                    "required": false,
-                    "type": "string"
+                    "description": "lists security groups by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "",
+                    "name": "virtualmachineid",
+                    "description": "lists security groups by virtual machine id",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "pagesize",
                     "required": false,
-                    "type": "integer"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list the security group by the id provided",
-                    "length": 255,
                     "name": "id",
-                    "related": "createSecurityGroup,listSecurityGroups",
+                    "description": "list the security group by the id provided",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createSecurityGroup,listSecurityGroups"
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
                     "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createSecurityGroup",
             "response": [
                 {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the security group",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the group",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account owning the security group",
                     "name": "account",
+                    "description": "the account owning the security group",
                     "type": "string"
                 },
                 {
-                    "description": "the list of ingress rules associated with the security group",
-                    "name": "ingressrule",
-                    "response": [
-                        {
-                            "description": "the ending IP of the security group rule ",
-                            "name": "endport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the protocol of the security group rule",
-                            "name": "protocol",
-                            "type": "string"
-                        },
-                        {
-                            "description": "security group name",
-                            "name": "securitygroupname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the code for the ICMP message response",
-                            "name": "icmpcode",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the id of the security group rule",
-                            "name": "ruleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "account owning the security group rule",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the ICMP message response",
-                            "name": "icmptype",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the CIDR notation for the base IP address of the security group rule",
-                            "name": "cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the starting IP of the security group rule",
-                            "name": "startport",
-                            "type": "integer"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the domain name of the security group",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of virtualmachine ids associated with this securitygroup",
-                    "name": "virtualmachineids",
-                    "type": "set"
-                },
-                {
-                    "description": "the project name of the group",
                     "name": "project",
+                    "description": "the project name of the group",
                     "type": "string"
                 },
                 {
-                    "description": "the list of egress rules associated with the security group",
-                    "name": "egressrule",
+                    "name": "ingressrule",
+                    "description": "the list of ingress rules associated with the security group",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the starting IP of the security group rule",
-                            "name": "startport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the protocol of the security group rule",
                             "name": "protocol",
+                            "description": "the protocol of the security group rule",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the ICMP message response",
-                            "name": "icmptype",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the CIDR notation for the base IP address of the security group rule",
-                            "name": "cidr",
+                            "name": "securitygroupname",
+                            "description": "security group name",
                             "type": "string"
                         },
                         {
-                            "description": "the code for the ICMP message response",
-                            "name": "icmpcode",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
                             "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
                             "response": [
                                 {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
                                     "name": "resourcetype",
+                                    "description": "resource type",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the account associated with the tag",
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "account",
+                                    "description": "the account associated with the tag",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
                                     "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "set"
+                            ]
                         },
                         {
-                            "description": "security group name",
-                            "name": "securitygroupname",
+                            "name": "ruleid",
+                            "description": "the id of the security group rule",
                             "type": "string"
                         },
                         {
-                            "description": "account owning the security group rule",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ending IP of the security group rule ",
-                            "name": "endport",
+                            "name": "icmpcode",
+                            "description": "the code for the ICMP message response",
                             "type": "integer"
                         },
                         {
-                            "description": "the id of the security group rule",
-                            "name": "ruleid",
+                            "name": "startport",
+                            "description": "the starting IP of the security group rule",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "endport",
+                            "description": "the ending IP of the security group rule ",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "the CIDR notation for the base IP address of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "icmptype",
+                            "description": "the type of the ICMP message response",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "account",
+                            "description": "account owning the security group rule",
                             "type": "string"
                         }
-                    ],
+                    ]
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the security group",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineids",
+                    "description": "the list of virtualmachine ids associated with this securitygroup",
                     "type": "set"
                 },
                 {
-                    "description": "the description of the security group",
-                    "name": "description",
+                    "name": "name",
+                    "description": "the name of the security group",
                     "type": "string"
                 },
                 {
-                    "description": "the number of virtualmachines associated with this securitygroup",
+                    "name": "egressrule",
+                    "description": "the list of egress rules associated with the security group",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "account owning the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "endport",
+                            "description": "the ending IP of the security group rule ",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "startport",
+                            "description": "the starting IP of the security group rule",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "protocol",
+                            "description": "the protocol of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "icmpcode",
+                            "description": "the code for the ICMP message response",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "securitygroupname",
+                            "description": "security group name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ruleid",
+                            "description": "the id of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "icmptype",
+                            "description": "the type of the ICMP message response",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "the CIDR notation for the base IP address of the security group rule",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the security group",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the security group",
+                    "type": "string"
+                },
+                {
                     "name": "virtualmachinecount",
+                    "description": "the number of virtualmachines associated with this securitygroup",
                     "type": "integer"
                 },
                 {
-                    "description": "the name of the security group",
-                    "name": "name",
+                    "name": "domain",
+                    "description": "the domain name of the security group",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID of the security group",
-                    "name": "domainid",
+                    "name": "projectid",
+                    "description": "the project id of the group",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Configures a host's out-of-band management interface",
-            "isasync": false,
             "name": "configureOutOfBandManagement",
+            "description": "Configures a host's out-of-band management interface",
+            "since": "4.9.0",
+            "isasync": false,
+            "related": "enableOutOfBandManagementForZone,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,issueOutOfBandManagementPowerAction,changeOutOfBandManagementPassword,disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost,disableOutOfBandManagementForZone",
             "params": [
                 {
-                    "description": "the host management interface port",
-                    "length": 255,
-                    "name": "port",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the host management interface user",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "length": 255,
                     "name": "hostid",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
+                    "description": "the ID of the host",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
                 },
                 {
-                    "description": "the host management interface driver, for example: ipmitool",
+                    "name": "username",
+                    "description": "the host management interface user",
+                    "type": "string",
                     "length": 255,
+                    "required": true
+                },
+                {
                     "name": "driver",
-                    "required": true,
-                    "type": "string"
+                    "description": "the host management interface driver, for example: ipmitool",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the host management interface IP address",
+                    "name": "port",
+                    "description": "the host management interface port",
+                    "type": "string",
                     "length": 255,
-                    "name": "address",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "the host management interface password",
-                    "length": 255,
                     "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "description": "the host management interface password",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "address",
+                    "description": "the host management interface IP address",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "disableOutOfBandManagementForCluster,disableOutOfBandManagementForHost,issueOutOfBandManagementPowerAction,enableOutOfBandManagementForZone,enableOutOfBandManagementForCluster,changeOutOfBandManagementPassword,enableOutOfBandManagementForHost,disableOutOfBandManagementForZone",
             "response": [
                 {
-                    "description": "the out-of-band management interface powerState of the host",
-                    "name": "powerstate",
-                    "type": "powerstate"
-                },
-                {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
-                    "type": "string"
-                },
-                {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface port",
-                    "name": "port",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface address",
                     "name": "address",
+                    "description": "the out-of-band management interface address",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
+                    "name": "hostid",
+                    "description": "the ID of the host",
                     "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "the out-of-band management interface port",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
+                    "type": "string"
+                },
+                {
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
+                },
+                {
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                },
+                {
+                    "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
+                    "type": "powerstate"
                 }
-            ],
-            "since": "4.9.0"
+            ]
         },
         {
+            "name": "deleteServicePackageOffering",
+            "description": "Delete Service Package",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the service offering ID",
+                    "type": "string",
+                    "length": 255,
+                    "required": true,
+                    "related": "listRegisteredServicePackages,registerNetscalerServicePackage"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listStorageTags",
             "description": "Lists storage tags",
             "isasync": false,
-            "name": "listStorageTags",
+            "related": "",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the storage tag",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the storage tag",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the pool ID of the storage tag",
                     "name": "poolid",
+                    "description": "the pool ID of the storage tag",
                     "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the storage tag",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage tag",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listTemplatePermissions",
             "description": "List template visibility and all accounts that have permissions to view this template.",
             "isasync": false,
-            "name": "listTemplatePermissions",
+            "related": "listTemplatePermissions,listIsoPermissions,listIsoPermissions",
             "params": [
                 {
-                    "description": "the template ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "listIsoPermissions,listTemplatePermissions,listTemplatePermissions,listIsoPermissions",
+                    "description": "the template ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listTemplatePermissions,listTemplatePermissions,listIsoPermissions,listIsoPermissions"
                 }
             ],
-            "related": "listIsoPermissions,listTemplatePermissions,listIsoPermissions",
             "response": [
                 {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of projects the template is available for",
-                    "name": "projectids",
-                    "type": "list"
-                },
-                {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of accounts the template is available for",
                     "name": "account",
+                    "description": "the list of accounts the template is available for",
                     "type": "list"
                 },
                 {
-                    "description": "true if this template is a public template, false otherwise",
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "projectids",
+                    "description": "the list of projects the template is available for",
+                    "type": "list"
+                },
+                {
                     "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
                     "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listAnnotations",
+            "description": "Lists annotations.",
+            "since": "4.11",
+            "isasync": false,
+            "related": "addAnnotation,removeAnnotation",
+            "params": [
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "entitytype",
+                    "description": "the entity type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the annotation",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "entityid",
+                    "description": "the id of the entity for which to show annotations",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "annotation",
+                    "description": "the contents of the annotation",
+                    "type": "string"
+                },
+                {
+                    "name": "removed",
+                    "description": "the removal timestamp for this annotation",
+                    "type": "date"
+                },
+                {
+                    "name": "entityid",
+                    "description": "the (uu)id of the entitiy to which this annotation pertains",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "The (uu)id of the user that entered the annotation",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the (uu)id of the annotation",
+                    "type": "string"
+                },
+                {
+                    "name": "entitytype",
+                    "description": "the type of the annotated entity",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the creation timestamp for this annotation",
+                    "type": "date"
+                }
+            ]
+        },
+        {
+            "name": "destroySystemVm",
             "description": "Destroyes a system virtual machine.",
             "isasync": true,
-            "name": "destroySystemVm",
+            "related": "changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,stopSystemVm,startSystemVm,listSystemVms",
             "params": [
                 {
-                    "description": "The ID of the system virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "destroySystemVm,changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,listSystemVms,stopSystemVm,startSystemVm",
+                    "description": "The ID of the system virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,stopSystemVm,startSystemVm,destroySystemVm,listSystemVms"
                 }
             ],
-            "related": "changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,listSystemVms,stopSystemVm,startSystemVm",
             "response": [
                 {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
                     "type": "string"
                 },
                 {
-                    "description": "the public MAC address for the system VM",
-                    "name": "publicmacaddress",
+                    "name": "zonename",
+                    "description": "the Zone name for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the system VM type",
+                    "name": "templateid",
+                    "description": "the template ID for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "systemvmtype",
+                    "description": "the system VM type",
                     "type": "string"
                 },
                 {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the public IP address for the system VM",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the system VM was created",
                     "name": "created",
+                    "description": "the date and time the system VM was created",
                     "type": "date"
                 },
                 {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the system VM",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the system VM",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the system VM",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the system VM",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the system VM",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the system VM",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the private MAC address for the system VM",
-                    "name": "privatemacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the system VM",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the system VM",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private IP address for the system VM",
-                    "name": "privateip",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the number of active console sessions for the console proxy system vm",
                     "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
                     "type": "integer"
                 },
                 {
-                    "description": "the state of the system VM",
+                    "name": "name",
+                    "description": "the name of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the hostname for the system VM",
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "privateip",
+                    "description": "the private IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "hostname",
+                    "description": "the hostname for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name for the system VM",
-                    "name": "zonename",
+                    "name": "id",
+                    "description": "the ID of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the system VM",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "archiveEvents",
             "description": "Archive one or more events.",
             "isasync": false,
-            "name": "archiveEvents",
             "params": [
                 {
-                    "description": "archive by event type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "end date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
-                    "name": "enddate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "start date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
-                    "name": "startdate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "the IDs of the events",
-                    "length": 255,
                     "name": "ids",
-                    "related": "listEvents",
+                    "description": "the IDs of the events",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "listEvents"
+                },
+                {
+                    "name": "type",
+                    "description": "archive by event type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startdate",
+                    "description": "start date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "enddate",
+                    "description": "end date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Adds Swift.",
-            "isasync": false,
             "name": "addSwift",
+            "description": "Adds Swift.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "listSecondaryStagingStores,listSwifts,updateCloudToUseObjectStore,addImageStore,addImageStoreS3,addSecondaryStorage,listImageStores,createSecondaryStagingStore",
             "params": [
                 {
-                    "description": "the URL for swift",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": " key for the user for swift",
-                    "length": 255,
                     "name": "key",
-                    "required": false,
-                    "type": "string"
+                    "description": " key for the user for swift",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the username for swift",
+                    "name": "url",
+                    "description": "the URL for swift",
+                    "type": "string",
                     "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "the account for swift",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "the account for swift",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "the username for swift",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addSecondaryStorage,addImageStoreS3,createSecondaryStagingStore,updateCloudToUseObjectStore,listSwifts,addImageStore,listSecondaryStagingStores,listImageStores",
             "response": [
                 {
-                    "description": "the ID of the image store",
-                    "name": "id",
+                    "name": "providername",
+                    "description": "the provider name of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the scope of the image store",
+                    "name": "zoneid",
+                    "description": "the Zone ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
                     "name": "scope",
+                    "description": "the scope of the image store",
                     "type": "scopetype"
                 },
                 {
-                    "description": "the name of the image store",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
-                },
-                {
-                    "description": "the Zone ID of the image store",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the image store",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the image store",
                     "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the provider name of the image store",
-                    "name": "providername",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Deletes a secondary staging store .",
-            "isasync": false,
-            "name": "deleteSecondaryStagingStore",
-            "params": [
-                {
-                    "description": "the staging store ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addSecondaryStorage,addImageStoreS3,createSecondaryStagingStore,updateCloudToUseObjectStore,listSwifts,addImageStore,listSecondaryStagingStores,listImageStores",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Adds a SRX firewall device",
-            "isasync": true,
-            "name": "addSrxFirewall",
-            "params": [
-                {
-                    "description": "URL of the SRX appliance.",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to reach SRX firewall device",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "supports only JuniperSRXFirewall",
-                    "length": 255,
-                    "name": "networkdevicetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to reach SRX firewall device",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork,listPhysicalNetworks",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "configureSrxFirewall",
-            "response": [
-                {
-                    "description": "device id of the SRX firewall",
-                    "name": "fwdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "fwdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "fwdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this SRX firewall belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private security zone of the external firewall",
-                    "name": "privatezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device capacity",
-                    "name": "fwdevicecapacity",
-                    "type": "long"
-                },
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
+                    "description": "the protocol of the image store",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates a load balancer",
-            "isasync": true,
-            "name": "updateLoadBalancer",
+            "name": "deleteSecondaryStagingStore",
+            "description": "Deletes a secondary staging store .",
+            "since": "4.2.0",
+            "isasync": false,
             "params": [
                 {
-                    "description": "the ID of the load balancer",
-                    "length": 255,
                     "name": "id",
-                    "related": "listIpForwardingRules,createIpForwardingRule,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
+                    "description": "the staging store ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "related": "listSecondaryStagingStores,listSwifts,updateCloudToUseObjectStore,addImageStore,addImageStoreS3,addSecondaryStorage,listImageStores,createSecondaryStagingStore"
                 }
             ],
-            "related": "createLoadBalancer,listLoadBalancers",
             "response": [
                 {
-                    "description": "Load Balancer network id",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the Load Balancer",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Load Balancer",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of instances associated with the Load Balancer",
-                    "name": "loadbalancerinstance",
-                    "response": [
-                        {
-                            "description": "the ip address of the instance",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the instance",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the instance",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the instance ID",
-                            "name": "id",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "Load Balancer source ip",
-                    "name": "sourceipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the Load Balancer",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                    "name": "algorithm",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the Load Balancer",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the list of rules associated with the Load Balancer",
-                    "name": "loadbalancerrule",
-                    "response": [
-                        {
-                            "description": "the state of the load balancer rule",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "instance port of the load balancer rule",
-                            "name": "instanceport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "source port of the load balancer rule",
-                            "name": "sourceport",
-                            "type": "integer"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the Load Balancer ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "Load Balancer source ip network id",
-                    "name": "sourceipaddressnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the Load Balancer",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the Load Balancer",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the Load Balancer",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the Load Balancer",
-                    "name": "domain",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
-            ],
-            "since": "4.4.0"
+            ]
         },
         {
+            "name": "updateLoadBalancer",
+            "description": "Updates a load balancer",
+            "since": "4.4.0",
+            "isasync": true,
+            "related": "listLoadBalancers,createLoadBalancer",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the load balancer",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createIpForwardingRule,updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "sourceipaddressnetworkid",
+                    "description": "Load Balancer source ip network id",
+                    "type": "string"
+                },
+                {
+                    "name": "loadbalancerinstance",
+                    "description": "the list of instances associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the instance ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the instance",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the instance",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the instance",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "Load Balancer network id",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "algorithm",
+                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
+                    "type": "string"
+                },
+                {
+                    "name": "sourceipaddress",
+                    "description": "Load Balancer source ip",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "loadbalancerrule",
+                    "description": "the list of rules associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "sourceport",
+                            "description": "source port of the load balancer rule",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "instanceport",
+                            "description": "instance port of the load balancer rule",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "id",
+                    "description": "the Load Balancer ID",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the Load Balancer",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "scaleSystemVm",
             "description": "Scale the service offering for a system vm (console proxy or secondary storage). The system vm must be in a \"Stopped\" state for this command to take effect.",
             "isasync": true,
-            "name": "scaleSystemVm",
+            "related": "changeServiceForSystemVm,migrateSystemVm,stopSystemVm,startSystemVm,listSystemVms",
             "params": [
                 {
-                    "description": "name value pairs of custom parameters for cpu, memory and cpunumber. example details[i].name=value",
-                    "length": 255,
                     "name": "details",
-                    "required": false,
-                    "type": "map"
+                    "description": "name value pairs of custom parameters for cpu, memory and cpunumber. example details[i].name=value",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the service offering ID to apply to the system vm",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The ID of the system vm",
-                    "length": 255,
                     "name": "id",
-                    "related": "changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,listSystemVms,stopSystemVm,startSystemVm",
+                    "description": "The ID of the system vm",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "changeServiceForSystemVm,scaleSystemVm,migrateSystemVm,stopSystemVm,startSystemVm,listSystemVms"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the service offering ID to apply to the system vm",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering,createServiceOffering,listServiceOfferings"
                 }
             ],
-            "related": "changeServiceForSystemVm,migrateSystemVm,listSystemVms,stopSystemVm,startSystemVm",
             "response": [
                 {
-                    "description": "the system VM type",
-                    "name": "systemvmtype",
+                    "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
+                    "type": "integer"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
+                    "name": "publicip",
+                    "description": "the public IP address for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the system VM",
-                    "name": "id",
+                    "name": "networkdomain",
+                    "description": "the network domain for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
                     "type": "string"
                 },
                 {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name for the system VM",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the private MAC address for the system VM",
-                    "name": "privatemacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the system VM",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private IP address for the system VM",
-                    "name": "privateip",
-                    "type": "string"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the system VM",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the system VM",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the system VM was created",
                     "name": "created",
+                    "description": "the date and time the system VM was created",
                     "type": "date"
                 },
                 {
-                    "description": "the name of the system VM",
-                    "name": "name",
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
+                    "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
+                    "name": "podid",
+                    "description": "the Pod ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the network domain for the system VM",
-                    "name": "networkdomain",
+                    "name": "systemvmtype",
+                    "description": "the system VM type",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID for the system VM",
-                    "name": "templateid",
+                    "name": "zonename",
+                    "description": "the Zone name for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
+                    "name": "privateip",
+                    "description": "the private IP address for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway for the system VM",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the system VM",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of active console sessions for the console proxy system vm",
-                    "name": "activeviewersessions",
-                    "type": "integer"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the system VM",
                     "name": "hostid",
+                    "description": "the host ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the public IP address for the system VM",
-                    "name": "publicip",
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the system VM",
+                    "name": "id",
+                    "description": "the ID of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the system VM",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists snapshot policies.",
-            "isasync": false,
-            "name": "listSnapshotPolicies",
-            "params": [
-                {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
-                    "name": "volumeid",
-                    "related": "detachVolume,listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the snapshot policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listSnapshotPolicies,updateSnapshotPolicy,createSnapshotPolicy",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "updateSnapshotPolicy,createSnapshotPolicy",
-            "response": [
-                {
-                    "description": "the ID of the snapshot policy",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the interval type of the snapshot policy",
-                    "name": "intervaltype",
-                    "type": "short"
-                },
-                {
-                    "description": "the time zone of the snapshot policy",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "time the snapshot is scheduled to be taken.",
-                    "name": "schedule",
-                    "type": "string"
-                },
-                {
-                    "description": "maximum number of snapshots retained",
-                    "name": "maxsnaps",
-                    "type": "int"
-                },
-                {
-                    "description": "is this policy for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the disk volume",
-                    "name": "volumeid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
+            "name": "updateVpnCustomerGateway",
             "description": "Update site to site vpn customer gateway",
             "isasync": true,
-            "name": "updateVpnCustomerGateway",
+            "related": "listVpnCustomerGateways,createVpnCustomerGateway",
             "params": [
                 {
-                    "description": "public ip address id of the customer gateway",
-                    "length": 255,
-                    "name": "gateway",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds",
-                    "length": 255,
-                    "name": "ikelifetime",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the gateway. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.",
-                    "length": 255,
                     "name": "ipsecpsk",
-                    "required": true,
-                    "type": "string"
+                    "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "ESP policy of the customer gateway",
-                    "length": 255,
-                    "name": "esppolicy",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "guest cidr of the customer gateway",
-                    "length": 255,
-                    "name": "cidrlist",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "If DPD is enabled for VPN connection",
-                    "length": 255,
-                    "name": "dpd",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds",
-                    "length": 255,
-                    "name": "esplifetime",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "id of customer gateway",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createVpnCustomerGateway,updateVpnCustomerGateway,listVpnCustomerGateways",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "IKE policy of the customer gateway",
-                    "length": 255,
-                    "name": "ikepolicy",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Force encapsulation for Nat Traversal",
-                    "length": 255,
-                    "name": "forceencap",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of this customer gateway",
-                    "length": 255,
                     "name": "name",
+                    "description": "name of this customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "esplifetime",
+                    "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ikepolicy",
+                    "description": "IKE policy of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "forceencap",
+                    "description": "Force encapsulation for Nat Traversal",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "id",
+                    "description": "id of customer gateway",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVpnCustomerGateway,listVpnCustomerGateways,createVpnCustomerGateway"
+                },
+                {
+                    "name": "esppolicy",
+                    "description": "ESP policy of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "ikelifetime",
+                    "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dpd",
+                    "description": "If DPD is enabled for VPN connection",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the gateway. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "createVpnCustomerGateway,listVpnCustomerGateways",
             "response": [
                 {
-                    "description": "IPsec preshared-key of customer gateway",
-                    "name": "ipsecpsk",
-                    "type": "string"
-                },
-                {
-                    "description": "public ip address id of the customer gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "IPsec policy of customer gateway",
-                    "name": "esppolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the customer gateway",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "guest ip of the customer gateway",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "IKE policy of customer gateway",
-                    "name": "ikepolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of IKE SA of customer gateway",
                     "name": "ikelifetime",
+                    "description": "Lifetime of IKE SA of customer gateway",
                     "type": "long"
                 },
                 {
-                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
-                    "name": "forceencap",
-                    "type": "boolean"
-                },
-                {
-                    "description": "guest cidr list of the customer gateway",
-                    "name": "cidrlist",
+                    "name": "esppolicy",
+                    "description": "IPsec policy of customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the host was removed",
+                    "name": "dpd",
+                    "description": "if DPD is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
                     "name": "removed",
+                    "description": "the date and time the host was removed",
                     "type": "date"
                 },
                 {
-                    "description": "if DPD is enabled for customer gateway",
-                    "name": "dpd",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Lifetime of ESP SA of customer gateway",
                     "name": "esplifetime",
+                    "description": "Lifetime of ESP SA of customer gateway",
                     "type": "long"
                 },
                 {
-                    "description": "the project name",
+                    "name": "id",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "guest ip of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "forceencap",
+                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "ipsecpsk",
+                    "description": "IPsec preshared-key of customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
                     "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "ikepolicy",
+                    "description": "IKE policy of customer gateway",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listSnapshotPolicies",
+            "description": "Lists snapshot policies.",
+            "isasync": false,
+            "related": "updateSnapshotPolicy,createSnapshotPolicy",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "volumeid",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listVolumes,detachVolume,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the snapshot policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateSnapshotPolicy,listSnapshotPolicies,createSnapshotPolicy"
+                }
+            ],
+            "response": [
+                {
+                    "name": "intervaltype",
+                    "description": "the interval type of the snapshot policy",
+                    "type": "short"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the snapshot policy",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the time zone of the snapshot policy",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is this policy for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "volumeid",
+                    "description": "the ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "maxsnaps",
+                    "description": "maximum number of snapshots retained",
+                    "type": "int"
+                },
+                {
+                    "name": "schedule",
+                    "description": "time the snapshot is scheduled to be taken.",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "stopRouter",
             "description": "Stops a router.",
             "isasync": true,
-            "name": "stopRouter",
+            "related": "changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listRouters,startRouter,stopNetScalerVpx,destroyRouter,rebootRouter,listInternalLoadBalancerVMs",
             "params": [
                 {
-                    "description": "Force stop the VM. The caller knows the VM is stopped.",
+                    "name": "id",
+                    "description": "the ID of the router",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "forced",
-                    "required": false,
-                    "type": "boolean"
+                    "required": true,
+                    "related": "changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listRouters,stopRouter,startRouter,stopNetScalerVpx,destroyRouter,rebootRouter,listInternalLoadBalancerVMs"
                 },
                 {
-                    "description": "the ID of the router",
+                    "name": "forced",
+                    "description": "Force stop the VM. The caller knows the VM is stopped.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "id",
-                    "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,rebootRouter,destroyRouter,stopRouter,startInternalLoadBalancerVM,startRouter,listRouters",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 }
             ],
-            "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,rebootRouter,destroyRouter,startInternalLoadBalancerVM,startRouter,listRouters",
             "response": [
                 {
-                    "description": "the public IP address for the router",
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
+                    "type": "string"
+                },
+                {
                     "name": "publicip",
+                    "description": "the public IP address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the router",
-                    "name": "name",
+                    "name": "gateway",
+                    "description": "the gateway for the router",
                     "type": "string"
                 },
                 {
-                    "description": "true if the router template requires upgrader",
-                    "name": "requiresupgrade",
+                    "name": "account",
+                    "description": "the account associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the corresponding link local network",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
                     "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
                     "type": "string"
                 },
                 {
-                    "description": "the version of template",
-                    "name": "version",
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
-                    "name": "scriptsversion",
-                    "type": "string"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the router",
                     "name": "state",
+                    "description": "the state of the router",
                     "type": "state"
                 },
                 {
-                    "description": "the account associated with the router",
-                    "name": "account",
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the router was created",
                     "name": "created",
+                    "description": "the date and time the router was created",
                     "type": "date"
                 },
                 {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with the router",
                     "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
+                            "name": "type",
+                            "description": "the type of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
                             "name": "ipaddress",
+                            "description": "the ip address of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the IPv6 address of network",
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
                             "name": "ip6address",
+                            "description": "the IPv6 address of network",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
                             "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
                             "type": "list"
                         },
                         {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
                             "name": "id",
+                            "description": "the ID of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
                             "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
                     "type": "string"
                 },
                 {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
                     "type": "boolean"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the router",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the router",
                     "name": "hostid",
+                    "description": "the host ID for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the router",
-                    "name": "id",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
                     "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the corresponding guest network",
-                    "name": "guestnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the second IPv6 DNS for the router",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
                     "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "lockAccount",
             "description": "This deprecated function used to locks an account. Look for the API DisableAccount instead",
             "isasync": false,
-            "name": "lockAccount",
+            "related": "updateAccount,listAccounts,enableAccount,listAccounts,markDefaultZoneForAccount,disableAccount,createAccount",
             "params": [
                 {
-                    "description": "Locks the specified account on this domain.",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
+                    "description": "Locks the specified account on this domain.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 },
                 {
-                    "description": "Locks the specified account.",
-                    "length": 255,
                     "name": "account",
-                    "required": true,
-                    "type": "string"
+                    "description": "Locks the specified account.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "disableAccount,listAccounts,markDefaultZoneForAccount,listAccounts,enableAccount,updateAccount,createAccount",
             "response": [
                 {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this account can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks owned by account",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this account",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the account",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this account",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of users associated with account",
-                    "name": "user",
-                    "response": [
-                        {
-                            "description": "the user name",
-                            "name": "username",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user firstname",
-                            "name": "firstname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if user is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the account name of the user",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the date and time the user account was created",
-                            "name": "created",
-                            "type": "date"
-                        },
-                        {
-                            "description": "the api key of the user",
-                            "name": "apikey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user state",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the role",
-                            "name": "roleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
-                            "name": "iscallerchilddomain",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the account type of the user",
-                            "name": "accounttype",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the secret key of the user",
-                            "name": "secretkey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the user",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user email address",
-                            "name": "email",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the timezone user was created in",
-                            "name": "timezone",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the role",
-                            "name": "rolename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the role",
-                            "name": "roletype",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the default zone of the account",
-                    "name": "defaultzoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this account",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "details for the account",
-                    "name": "accountdetails",
-                    "type": "map"
-                },
-                {
-                    "description": "account type (admin, domain-admin, user)",
                     "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
                     "type": "short"
                 },
                 {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
+                    "name": "domainid",
+                    "description": "id of the Domain the account belongs too",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which can be created by this account",
-                    "name": "templatelimit",
+                    "name": "state",
+                    "description": "the state of the account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects the account can own",
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
                     "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "true if account is default, false otherwise",
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
+                    "type": "string"
+                },
+                {
                     "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the total number of cpu cores available to be created for this account",
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
+                    "type": "long"
+                },
+                {
                     "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of acl groups that account belongs to",
                     "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
                     "type": "list"
                 },
                 {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
                     "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "rolename",
+                            "description": "the name of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the user state",
+                            "type": "string"
+                        },
+                        {
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "username",
+                            "description": "the user name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roleid",
+                            "description": "the ID of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the user ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "created",
+                            "description": "the date and time the user account was created",
+                            "type": "date"
+                        },
+                        {
+                            "name": "accounttype",
+                            "description": "the account type of the user",
+                            "type": "short"
+                        },
+                        {
+                            "name": "apikey",
+                            "description": "the api key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roletype",
+                            "description": "the type of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "firstname",
+                            "description": "the user firstname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "lastname",
+                            "description": "the user lastname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secretkey",
+                            "description": "the secret key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "timezone",
+                            "description": "the timezone user was created in",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
+                    "type": "string"
+                },
+                {
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
+                    "type": "long"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
+                    "type": "long"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for the account",
+                    "type": "map"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "defaultzoneid",
+                    "description": "the default zone of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "name of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "listClusters",
             "description": "Lists clusters.",
             "isasync": false,
-            "name": "listClusters",
+            "related": "addCluster,updateCluster",
             "params": [
                 {
-                    "description": "whether this cluster is managed by cloudstack",
-                    "length": 255,
-                    "name": "managedstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists clusters by the cluster ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addCluster,listClusters,updateCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "lists clusters by Pod ID",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "lists clusters by cluster type",
-                    "length": 255,
-                    "name": "clustertype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists clusters by the cluster name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists clusters by hypervisor type",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "flag to display the capacity of the clusters",
-                    "length": 255,
-                    "name": "showcapacities",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists clusters by Zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "lists clusters by allocation state",
-                    "length": 255,
                     "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
+                    "description": "lists clusters by allocation state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
+                    "name": "managedstate",
+                    "description": "whether this cluster is managed by cloudstack",
+                    "type": "string",
                     "length": 255,
-                    "name": "page",
+                    "required": false
+                },
+                {
+                    "name": "showcapacities",
+                    "description": "flag to display the capacity of the clusters",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "lists clusters by the cluster ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "addCluster,listClusters,updateCluster"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "lists clusters by Pod ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "lists clusters by Zone ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "lists clusters by cluster type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "lists clusters by hypervisor type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "lists clusters by the cluster name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addCluster,updateCluster",
             "response": [
                 {
-                    "description": "whether this cluster is managed by cloudstack",
-                    "name": "managedstate",
+                    "name": "ovm3vip",
+                    "description": "Ovm3 VIP to use for pooling and/or clustering",
                     "type": "string"
                 },
                 {
-                    "description": "the capacity of the Cluster",
+                    "name": "podid",
+                    "description": "the Pod ID of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the cluster name",
+                    "type": "string"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the type of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryovercommitratio",
+                    "description": "The memory overcommit ratio of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "managedstate",
+                    "description": "whether this cluster is managed by cloudstack",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisortype",
+                    "description": "the hypervisor type of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "the allocation state of the cluster",
+                    "type": "string"
+                },
+                {
                     "name": "capacity",
+                    "description": "the capacity of the Cluster",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the percentage of capacity currently in use",
+                            "name": "podname",
+                            "description": "the Pod name",
+                            "type": "string"
+                        },
+                        {
                             "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
                             "type": "string"
                         },
                         {
-                            "description": "the Zone name",
-                            "name": "zonename",
+                            "name": "podid",
+                            "description": "the Pod ID",
                             "type": "string"
                         },
                         {
-                            "description": "the capacity type",
                             "name": "type",
+                            "description": "the capacity type",
                             "type": "short"
                         },
                         {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Pod name",
-                            "name": "podname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity currently in use",
-                            "name": "capacityused",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Zone ID",
                             "name": "zoneid",
+                            "description": "the Zone ID",
                             "type": "string"
                         },
                         {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
                             "type": "long"
                         },
                         {
-                            "description": "the Pod ID",
-                            "name": "podid",
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
                             "type": "string"
                         },
                         {
-                            "description": "the Cluster name",
                             "name": "clustername",
+                            "description": "the Cluster name",
                             "type": "string"
+                        },
+                        {
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the allocation state of the cluster",
-                    "name": "allocationstate",
-                    "type": "string"
-                },
-                {
-                    "description": "The cpu overcommit ratio of the cluster",
-                    "name": "cpuovercommitratio",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the cluster",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "Ovm3 VIP to use for pooling and/or clustering",
-                    "name": "ovm3vip",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor type of the cluster",
-                    "name": "hypervisortype",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID of the cluster",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster ID",
                     "name": "id",
+                    "description": "the cluster ID",
                     "type": "string"
                 },
                 {
-                    "description": "The memory overcommit ratio of the cluster",
-                    "name": "memoryovercommitratio",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the cluster",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "Meta data associated with the zone (key/value pairs)",
                     "name": "resourcedetails",
+                    "description": "Meta data associated with the zone (key/value pairs)",
                     "type": "map"
                 },
                 {
-                    "description": "the Zone ID of the cluster",
-                    "name": "zoneid",
+                    "name": "cpuovercommitratio",
+                    "description": "The cpu overcommit ratio of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "the type of the cluster",
-                    "name": "clustertype",
+                    "name": "podname",
+                    "description": "the Pod name of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the cluster",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes project invitation",
-            "isasync": true,
             "name": "deleteProjectInvitation",
+            "description": "Deletes project invitation",
+            "since": "3.0.0",
+            "isasync": true,
             "params": [
                 {
+                    "name": "id",
                     "description": "id of the invitation",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "listProjectInvitations",
                     "required": true,
-                    "type": "uuid"
+                    "related": "listProjectInvitations"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
-            "description": "Lists project invitations and provides detailed information for listed invitations",
-            "isasync": false,
             "name": "listProjectInvitations",
+            "description": "Lists project invitations and provides detailed information for listed invitations",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "list by project id",
-                    "length": 255,
                     "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
+                    "description": "list by project id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "if true, list only active invitations - having Pending state and ones that are not timed out yet",
-                    "length": 255,
-                    "name": "activeonly",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list invitations by state",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list invitations by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listProjectInvitations",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list only resources belonging to the domain specified",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "activeonly",
+                    "description": "if true, list only active invitations - having Pending state and ones that are not timed out yet",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "state",
+                    "description": "list invitations by state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list invitations by id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectInvitations"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the email the invitation was sent to",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the project's owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name where the project belongs to",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the invitation",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the project",
                     "name": "projectid",
+                    "description": "the id of the project",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the project",
                     "name": "project",
+                    "description": "the name of the project",
                     "type": "string"
                 },
                 {
-                    "description": "the domain id the project belongs to",
-                    "name": "domainid",
+                    "name": "email",
+                    "description": "the email the invitation was sent to",
                     "type": "string"
                 },
                 {
-                    "description": "the invitation state",
                     "name": "state",
+                    "description": "the invitation state",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the project's owner",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name where the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the invitation",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "listEgressFirewallRules",
             "description": "Lists all egress firewall rules for network ID.",
             "isasync": false,
-            "name": "listEgressFirewallRules",
+            "related": "createFirewallRule,updateEgressFirewallRule,listFirewallRules",
             "params": [
                 {
-                    "description": "Lists rule with the specified ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listIpForwardingRules,createIpForwardingRule,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of IP address of the firewall services",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the network ID for the egress firewall services",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list only resources belonging to the domain specified",
+                    "name": "networkid",
+                    "description": "the network ID for the egress firewall services",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the ID of IP address of the firewall services",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
+                    "name": "id",
+                    "description": "Lists rule with the specified ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createIpForwardingRule,updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listFirewallRules,createFirewallRule,updateEgressFirewallRule",
             "response": [
                 {
-                    "description": "the state of the rule",
                     "name": "state",
+                    "description": "the state of the rule",
                     "type": "string"
                 },
                 {
-                    "description": "the ending port of firewall rule's port range",
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the public ip address for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "destcidrlist",
+                    "description": "the cidr list to forward traffic to",
+                    "type": "string"
+                },
+                {
                     "name": "endport",
+                    "description": "the ending port of firewall rule's port range",
                     "type": "integer"
                 },
                 {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the protocol of the firewall rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the firewall rule",
-                    "name": "ipaddressid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network id of the firewall rule",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "is rule for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the firewall rule",
-                    "name": "id",
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
                     "type": "string"
                 },
                 {
-                    "description": "the starting port of firewall rule's port range",
-                    "name": "startport",
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
                     "type": "integer"
                 },
                 {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
                 },
                 {
-                    "description": "the public ip address for the firewall rule",
-                    "name": "ipaddress",
+                    "name": "startport",
+                    "description": "the starting port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the firewall rule",
                     "type": "string"
                 },
                 {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
+                    "name": "networkid",
+                    "description": "the network id of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the firewall rule",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes traffic type of a physical network",
-            "isasync": true,
-            "name": "deleteTrafficType",
-            "params": [
-                {
-                    "description": "traffic type id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateTrafficType,addTrafficType",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
+            "name": "updateRegion",
             "description": "Updates a region",
             "isasync": false,
-            "name": "updateRegion",
+            "related": "listRegions,addRegion",
             "params": [
                 {
-                    "description": "updates region with this end point",
-                    "length": 255,
                     "name": "endpoint",
-                    "required": false,
-                    "type": "string"
+                    "description": "updates region with this end point",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "updates region with this name",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "updates region with this name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Id of region to update",
-                    "length": 255,
                     "name": "id",
-                    "required": true,
-                    "type": "integer"
+                    "description": "Id of region to update",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "addRegion,listRegions",
             "response": [
                 {
-                    "description": "the end point of the region",
-                    "name": "endpoint",
-                    "type": "string"
-                },
-                {
-                    "description": "true if security groups support is enabled, false otherwise",
-                    "name": "portableipserviceenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if GSLB service is enabled in the region, false otherwise",
                     "name": "gslbserviceenabled",
+                    "description": "true if GSLB service is enabled in the region, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the region",
-                    "name": "name",
+                    "name": "endpoint",
+                    "description": "the end point of the region",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the region",
+                    "name": "portableipserviceenabled",
+                    "description": "true if security groups support is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the region",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the ID of the region",
                     "type": "integer"
                 }
             ]
         },
         {
-            "description": "Lists clusters metrics",
-            "isasync": false,
+            "name": "deleteTrafficType",
+            "description": "Deletes traffic type of a physical network",
+            "since": "3.0.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "traffic type id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateTrafficType,addTrafficType"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
             "name": "listClustersMetrics",
-            "params": [
-                {
-                    "description": "lists clusters by the cluster ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addCluster,updateCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "flag to display the capacity of the clusters",
-                    "length": 255,
-                    "name": "showcapacities",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "whether this cluster is managed by cloudstack",
-                    "length": 255,
-                    "name": "managedstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists clusters by Pod ID",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "lists clusters by cluster type",
-                    "length": 255,
-                    "name": "clustertype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists clusters by hypervisor type",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "lists clusters by Zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "lists clusters by allocation state",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists clusters by the cluster name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
+            "description": "Lists clusters metrics",
+            "since": "4.9.3",
+            "isasync": false,
             "related": "",
-            "response": [
-                {
-                    "description": "the total cpu allocated in Ghz",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "running / total hosts in the cluster",
-                    "name": "hosts",
-                    "type": "string"
-                },
-                {
-                    "description": "cpu usage disable threshold exceeded",
-                    "name": "cpudisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the maximum cpu deviation",
-                    "name": "cpumaxdeviation",
-                    "type": "string"
-                },
-                {
-                    "description": "the total cpu used in Ghz",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "memory usage disable threshold exceeded",
-                    "name": "memorydisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the cluster",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "cpu allocated disable threshold exceeded",
-                    "name": "cpuallocateddisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the maximum memory deviation",
-                    "name": "memorymaxdeviation",
-                    "type": "string"
-                },
-                {
-                    "description": "memory allocated notification threshold exceeded",
-                    "name": "memoryallocatedthreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total cpu allocated in GiB",
-                    "name": "memoryallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the total cpu capacity in GiB",
-                    "name": "memorytotal",
-                    "type": "string"
-                },
-                {
-                    "description": "cpu usage notification threshold exceeded",
-                    "name": "cputhreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "cpu allocated notification threshold exceeded",
-                    "name": "cpuallocatedthreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total cpu capacity in Ghz",
-                    "name": "cputotal",
-                    "type": "string"
-                },
-                {
-                    "description": "memory usage notification threshold exceeded",
-                    "name": "memorythreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "memory allocated disable threshold exceeded",
-                    "name": "memoryallocateddisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total cpu used in GiB",
-                    "name": "memoryused",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.3"
-        },
-        {
-            "description": "Lists all LDAP configurations",
-            "isasync": false,
-            "name": "listLdapConfigurations",
             "params": [
                 {
-                    "description": "Port",
+                    "name": "managedstate",
+                    "description": "whether this cluster is managed by cloudstack",
+                    "type": "string",
                     "length": 255,
-                    "name": "port",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "Hostname",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "addLdapConfiguration,deleteLdapConfiguration",
-            "response": [
-                {
-                    "description": "hostname",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "port",
-                    "name": "port",
-                    "type": "int"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Lists secondary staging stores.",
-            "isasync": false,
-            "name": "listSecondaryStagingStores",
-            "params": [
-                {
-                    "description": "the name of the staging store",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the staging store",
-                    "length": 255,
                     "name": "id",
-                    "related": "addSecondaryStorage,addImageStoreS3,createSecondaryStagingStore,updateCloudToUseObjectStore,listSwifts,addImageStore,listSecondaryStagingStores,listImageStores",
+                    "description": "lists clusters by the cluster ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "addCluster,updateCluster"
                 },
                 {
-                    "description": "the staging store protocol",
+                    "name": "allocationstate",
+                    "description": "lists clusters by allocation state",
+                    "type": "string",
                     "length": 255,
-                    "name": "protocol",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the Zone ID for the staging store",
+                    "name": "showcapacities",
+                    "description": "flag to display the capacity of the clusters",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "clustertype",
+                    "description": "lists clusters by cluster type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "lists clusters by the cluster name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "lists clusters by hypervisor type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "lists clusters by Pod ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the staging store provider",
+                    "description": "lists clusters by Zone ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "provider",
                     "required": false,
-                    "type": "string"
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
-            "related": "addSecondaryStorage,addImageStoreS3,createSecondaryStagingStore,updateCloudToUseObjectStore,listSwifts,addImageStore,listImageStores",
             "response": [
                 {
-                    "description": "the protocol of the image store",
+                    "name": "memoryallocatedthreshold",
+                    "description": "memory allocated notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the total cpu used in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuallocatedthreshold",
+                    "description": "cpu allocated notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpudisablethreshold",
+                    "description": "cpu usage disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total cpu capacity in Ghz",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total cpu capacity in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the total cpu used in Ghz",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the total cpu allocated in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryallocateddisablethreshold",
+                    "description": "memory allocated disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memorydisablethreshold",
+                    "description": "memory usage disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuallocateddisablethreshold",
+                    "description": "cpu allocated disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "hosts",
+                    "description": "running / total hosts in the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuallocated",
+                    "description": "the total cpu allocated in Ghz",
+                    "type": "string"
+                },
+                {
+                    "name": "memorythreshold",
+                    "description": "memory usage notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cputhreshold",
+                    "description": "cpu usage notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memorymaxdeviation",
+                    "description": "the maximum memory deviation",
+                    "type": "string"
+                },
+                {
+                    "name": "cpumaxdeviation",
+                    "description": "the maximum cpu deviation",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listLdapConfigurations",
+            "description": "Lists all LDAP configurations",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "deleteLdapConfiguration,addLdapConfiguration",
+            "params": [
+                {
+                    "name": "domainid",
+                    "description": "linked domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostname",
+                    "description": "Hostname",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "port",
+                    "description": "Port",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "port",
+                    "description": "port teh ldap server is running on",
+                    "type": "int"
+                },
+                {
+                    "name": "domainid",
+                    "description": "linked domain",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "name of the host running the ldap server",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listSecondaryStagingStores",
+            "description": "Lists secondary staging stores.",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "listSwifts,updateCloudToUseObjectStore,addImageStore,addImageStoreS3,addSecondaryStorage,listImageStores,createSecondaryStagingStore",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "the name of the staging store",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the staging store",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the staging store",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listSecondaryStagingStores,listSwifts,updateCloudToUseObjectStore,addImageStore,addImageStoreS3,addSecondaryStorage,listImageStores,createSecondaryStagingStore"
+                },
+                {
+                    "name": "provider",
+                    "description": "the staging store provider",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "protocol",
+                    "description": "the staging store protocol",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the provider name of the image store",
-                    "name": "providername",
+                    "name": "protocol",
+                    "description": "the protocol of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the scope of the image store",
+                    "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the image store",
+                    "type": "string"
+                },
+                {
                     "name": "scope",
+                    "description": "the scope of the image store",
                     "type": "scopetype"
                 },
                 {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the image store",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the image store",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the image store",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the image store",
                     "name": "zonename",
+                    "description": "the Zone name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "providername",
+                    "description": "the provider name of the image store",
                     "type": "string"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "createRemoteAccessVpn",
             "description": "Creates a l2tp/ipsec remote access vpn",
             "isasync": true,
-            "name": "createRemoteAccessVpn",
+            "related": "updateRemoteAccessVpn,listRemoteAccessVpns",
             "params": [
                 {
-                    "description": "an optional account for the VPN. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "public ip address id of the vpn server",
-                    "length": 255,
-                    "name": "publicipid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the range of ip addresses to allocate to vpn clients. The first ip in the range will be taken by the vpn server",
-                    "length": 255,
-                    "name": "iprange",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the vpn to the end user or not",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "an optional domainId for the VPN. If the account parameter is used, domainId must also be used.",
+                    "name": "account",
+                    "description": "an optional account for the VPN. Must be used with domainId.",
+                    "type": "string",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitely. Has value true by default",
+                    "name": "publicipid",
+                    "description": "public ip address id of the vpn server",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
                     "name": "openfirewall",
+                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitely. Has value true by default",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the VPN. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "iprange",
+                    "description": "the range of ip addresses to allocate to vpn clients. The first ip in the range will be taken by the vpn server",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updateRemoteAccessVpn,listRemoteAccessVpns",
             "response": [
                 {
-                    "description": "the public ip address of the vpn server",
                     "name": "publicipid",
+                    "description": "the public ip address of the vpn server",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the vpn",
                     "name": "projectid",
+                    "description": "the project id of the vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the ipsec preshared key",
-                    "name": "presharedkey",
+                    "name": "id",
+                    "description": "the id of the remote access vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the domain id of the account of the remote access vpn",
-                    "name": "domainid",
+                    "name": "publicip",
+                    "description": "the public ip address of the vpn server",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the account of the remote access vpn",
-                    "name": "domain",
+                    "name": "account",
+                    "description": "the account of the remote access vpn",
                     "type": "string"
                 },
                 {
-                    "description": "is vpn for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is vpn for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the id of the remote access vpn",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address of the vpn server",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the range of ips to allocate to the clients",
-                    "name": "iprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
                     "name": "project",
+                    "description": "the project name of the vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the account of the remote access vpn",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
                     "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "iprange",
+                    "description": "the range of ips to allocate to the clients",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "presharedkey",
+                    "description": "the ipsec preshared key",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the account of the remote access vpn",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "changeServiceForVirtualMachine",
             "description": "Changes the service offering for a virtual machine. The virtual machine must be in a \"Stopped\" state for this command to take effect.",
             "isasync": false,
-            "name": "changeServiceForVirtualMachine",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "the service offering ID to apply to the virtual machine",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,changeServiceForVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name value pairs of custom parameters for cpu, memory and cpunumber. example details[i].name=value",
-                    "length": 255,
                     "name": "details",
-                    "required": false,
-                    "type": "map"
+                    "description": "name value pairs of custom parameters for cpu, memory and cpunumber. example details[i].name=value",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the service offering ID to apply to the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering,createServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "id",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,changeServiceForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "updateVMAffinityGroup,rebootVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        }
+                    ]
                 },
                 {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
+                    "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the read (bytes) of disk on the vm",
                     "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "details",
+                    "description": "Vm details in key/value pairs.",
                     "type": "map"
                 },
                 {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
                     "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the speed of each cpu",
                     "name": "cpuspeed",
+                    "description": "the speed of each cpu",
                     "type": "integer"
                 },
                 {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Starts a router.",
-            "isasync": true,
-            "name": "startRouter",
-            "params": [
-                {
-                    "description": "the ID of the router",
-                    "length": 255,
-                    "name": "id",
-                    "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,rebootRouter,destroyRouter,startInternalLoadBalancerVM,startRouter,listRouters",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,rebootRouter,destroyRouter,startInternalLoadBalancerVM,listRouters",
-            "response": [
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the router",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the router template requires upgrader",
-                    "name": "requiresupgrade",
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the corresponding link local network",
-                    "name": "linklocalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with the router",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the router",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
-                    "name": "scriptsversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the second IPv6 DNS for the router",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the version of template",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding guest network",
-                    "name": "guestnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the router",
                     "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the host ID for the router",
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
                     "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "role of the domain router",
-                    "name": "role",
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
                     "type": "string"
                 },
                 {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the router was created",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date when this virtual machine was created",
                     "type": "date"
                 },
                 {
-                    "description": "the state of the router",
-                    "name": "state",
-                    "type": "state"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name for the router",
-                    "name": "zonename",
-                    "type": "string"
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        }
+                    ]
                 }
             ]
         },
         {
-            "description": "Lists all available OS mappings for given hypervisor",
-            "isasync": false,
-            "name": "listGuestOsMapping",
+            "name": "startRouter",
+            "description": "Starts a router.",
+            "isasync": true,
+            "related": "changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listRouters,stopNetScalerVpx,destroyRouter,rebootRouter,listInternalLoadBalancerVMs",
             "params": [
                 {
-                    "description": "list Guest OS mapping by hypervisor",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list mapping by Guest OS Type UUID",
-                    "length": 255,
-                    "name": "ostypeid",
-                    "related": "addGuestOs,listOsTypes",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list mapping by its UUID",
-                    "length": 255,
                     "name": "id",
-                    "related": "listGuestOsMapping,updateGuestOsMapping,addGuestOsMapping",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
+                    "description": "the ID of the router",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list Guest OS mapping by hypervisor version. Must be used with hypervisor parameter",
-                    "length": 255,
-                    "name": "hypervisorversion",
-                    "required": false,
-                    "type": "string"
+                    "required": true,
+                    "related": "changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listRouters,startRouter,stopNetScalerVpx,destroyRouter,rebootRouter,listInternalLoadBalancerVMs"
                 }
             ],
-            "related": "updateGuestOsMapping,addGuestOsMapping",
             "response": [
                 {
-                    "description": "version of the hypervisor for mapping",
-                    "name": "hypervisorversion",
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
                     "type": "string"
                 },
                 {
-                    "description": "hypervisor specific name for the Guest OS",
-                    "name": "osnameforhypervisor",
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor",
-                    "name": "hypervisor",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the Guest OS mapping",
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
+                    "type": "boolean"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the id of the router",
                     "type": "string"
                 },
                 {
-                    "description": "is the mapping user defined",
-                    "name": "isuserdefined",
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
                     "type": "string"
                 },
                 {
-                    "description": "standard display name for the Guest OS",
-                    "name": "osdisplayname",
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the Guest OS type",
-                    "name": "ostypeid",
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
                     "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the router",
+                    "type": "state"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the router was created",
+                    "type": "date"
                 }
-            ],
-            "since": "4.4.0"
+            ]
         },
         {
+            "name": "listTemplates",
             "description": "List all public, private, and privileged templates.",
             "isasync": false,
-            "name": "listTemplates",
+            "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "list only resources belonging to the domain specified",
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "the template name",
+                    "name": "parenttemplateid",
+                    "description": "list datadisk templates by parent template id",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "name",
                     "required": false,
-                    "type": "string"
+                    "since": "4.4",
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the template ID",
+                    "name": "hypervisor",
+                    "description": "the hypervisor for which to restrict the search",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,listTemplates,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "List resources by tags (key/value pairs)",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
+                    "required": false
                 },
                 {
-                    "description": "show removed templates as well",
-                    "length": 255,
-                    "name": "showremoved",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the IDs of the templates, mutually exclusive with id",
-                    "length": 255,
                     "name": "ids",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,listTemplates,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
+                    "description": "the IDs of the templates, mutually exclusive with id",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
                     "since": "4.9",
-                    "type": "list"
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 },
                 {
-                    "description": "",
+                    "name": "showremoved",
+                    "description": "show removed templates as well",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "pagesize",
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,listTemplates,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 },
                 {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string",
                     "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
                     "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "list templates by zoneId",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
                     "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the hypervisor for which to restrict the search",
+                    "name": "zoneid",
+                    "description": "list templates by zoneId",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "hypervisor",
                     "required": false,
-                    "type": "string"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).",
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
                     "name": "templatefilter",
-                    "required": true,
-                    "type": "string"
+                    "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
             "response": [
                 {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
+                    "name": "displaytext",
+                    "description": "the template display text",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the template",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this template was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the template name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
                     "type": "boolean"
                 },
                 {
-                    "description": "checksum of the template",
                     "name": "checksum",
+                    "description": "checksum of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the date this template was removed",
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
+                    "type": "string"
+                },
+                {
                     "name": "removed",
+                    "description": "the date this template was removed",
                     "type": "date"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
-                    "type": "string"
-                },
-                {
-                    "description": "additional key/value details tied with template",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the size of the template",
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone for this template",
+                    "type": "string"
+                },
+                {
                     "name": "size",
+                    "description": "the size of the template",
                     "type": "long"
                 },
                 {
-                    "description": "true if template is sshkey enabled, false otherwise",
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "additional key/value details tied with template",
+                    "type": "map"
+                },
+                {
                     "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the template display text",
-                    "name": "displaytext",
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
                     "type": "string"
                 },
                 {
-                    "description": "the format of the template.",
                     "name": "format",
+                    "description": "the format of the template.",
                     "type": "imageformat"
                 },
                 {
-                    "description": "the type of the template",
-                    "name": "templatetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the account id to which the template belongs",
                     "name": "accountid",
+                    "description": "the account id to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the template",
-                    "name": "projectid",
+                    "name": "templatetype",
+                    "description": "the type of the template",
                     "type": "string"
                 },
                 {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
+                    "name": "templatetag",
+                    "description": "the tag of this template",
                     "type": "string"
                 },
                 {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the template",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
                     "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
-                    "type": "boolean"
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
                 },
                 {
-                    "description": "the ID of the OS type for this template.",
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
                     "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this template was created",
+                    "type": "date"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
+                },
+                {
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "name",
+                    "description": "the template name",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Removes stratosphere ssp server",
+            "name": "listGuestOsMapping",
+            "description": "Lists all available OS mappings for given hypervisor",
+            "since": "4.4.0",
             "isasync": false,
-            "name": "deleteStratosphereSsp",
+            "related": "updateGuestOsMapping,addGuestOsMapping",
             "params": [
                 {
-                    "description": "the host ID of ssp server",
+                    "name": "ostypeid",
+                    "description": "list mapping by Guest OS Type UUID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false,
+                    "related": "listOsTypes,addGuestOs"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "list Guest OS mapping by hypervisor version. Must be used with hypervisor parameter",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list mapping by its UUID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateGuestOsMapping,listGuestOsMapping,addGuestOsMapping"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "list Guest OS mapping by hypervisor",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "hypervisor",
+                    "description": "the hypervisor",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "id",
+                    "description": "the ID of the Guest OS mapping",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the Guest OS type",
+                    "type": "string"
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "standard display name for the Guest OS",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "version of the hypervisor for mapping",
+                    "type": "string"
+                },
+                {
+                    "name": "isuserdefined",
+                    "description": "is the mapping user defined",
+                    "type": "string"
+                },
+                {
+                    "name": "osnameforhypervisor",
+                    "description": "hypervisor specific name for the Guest OS",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "createAutoScalePolicy",
             "description": "Creates an autoscale policy for a provision or deprovision action, the action is taken when the all the conditions evaluates to true for the specified duration. The policy is in effect once it is attached to a autscale vm group.",
             "isasync": true,
-            "name": "createAutoScalePolicy",
-            "params": [
-                {
-                    "description": "the duration for which the conditions have to be true before action is taken",
-                    "length": 255,
-                    "name": "duration",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
-                    "length": 255,
-                    "name": "conditionids",
-                    "related": "createCondition,listConditions",
-                    "required": true,
-                    "type": "list"
-                },
-                {
-                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
-                    "length": 255,
-                    "name": "action",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
-                    "length": 255,
-                    "name": "quiettime",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
             "related": "updateAutoScalePolicy,listAutoScalePolicies",
-            "response": [
+            "params": [
                 {
-                    "description": "the account owning the autoscale policy",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id autoscale policy",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale policy ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the autoscale policy",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
-                    "name": "quiettime",
-                    "type": "integer"
-                },
-                {
+                    "name": "conditionids",
                     "description": "the list of IDs of the conditions that are being evaluated on every interval",
-                    "name": "conditions",
-                    "type": "list"
-                },
-                {
-                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the autoscale policy",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the autoscale policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the duration for which the conditions have to be true before action is taken",
-                    "name": "duration",
-                    "type": "integer"
-                }
-            ]
-        },
-        {
-            "description": "Lists physical networks",
-            "isasync": false,
-            "name": "listPhysicalNetworks",
-            "params": [
-                {
-                    "description": "List by keyword",
+                    "type": "list",
                     "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "search by name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list physical network by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork,listPhysicalNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the Zone ID for the physical network",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "updatePhysicalNetwork,createPhysicalNetwork",
-            "response": [
-                {
-                    "description": "the vlan of the physical network",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the physical network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the physical network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of the physical network",
-                    "name": "networkspeed",
-                    "type": "string"
-                },
-                {
-                    "description": "isolation methods",
-                    "name": "isolationmethods",
-                    "type": "string"
-                },
-                {
-                    "description": "comma separated tag",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "Broadcast domain range of the physical network",
-                    "name": "broadcastdomainrange",
-                    "type": "string"
-                },
-                {
-                    "description": "the uuid of the physical network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the physical network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the physical network",
-                    "name": "name",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Lists all firewall rules for an IP address.",
-            "isasync": false,
-            "name": "listFirewallRules",
-            "params": [
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list firewall rules for certain network",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of IP address of the firewall services",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Lists rule with the specified ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listIpForwardingRules,createIpForwardingRule,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "createFirewallRule,updateEgressFirewallRule",
-            "response": [
-                {
-                    "description": "the protocol of the firewall rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the firewall rule",
-                    "name": "ipaddressid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network id of the firewall rule",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of firewall rule's port range",
-                    "name": "startport",
-                    "type": "integer"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the firewall rule",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of firewall rule's port range",
-                    "name": "endport",
-                    "type": "integer"
-                },
-                {
-                    "description": "the public ip address for the firewall rule",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                }
-            ]
-        },
-        {
-            "description": " delete a Brocade VCS Switch",
-            "isasync": true,
-            "name": "deleteBrocadeVcsDevice",
-            "params": [
-                {
-                    "description": "Brocade Switch ID",
-                    "length": 255,
-                    "name": "vcsdeviceid",
-                    "related": "addBrocadeVcsDevice,listBrocadeVcsDevices",
                     "required": true,
-                    "type": "uuid"
+                    "related": "listConditions,createCondition"
+                },
+                {
+                    "name": "duration",
+                    "description": "the duration for which the conditions have to be true before action is taken",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "action",
+                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "quiettime",
+                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "quiettime",
+                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
+                    "type": "integer"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the autoscale policy",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
+                    "name": "conditions",
+                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
+                    "type": "list"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "duration",
+                    "description": "the duration for which the conditions have to be true before action is taken",
+                    "type": "integer"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale policy ID",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteStratosphereSsp",
+            "description": "Removes stratosphere ssp server",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "the host ID of ssp server",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "configureSimulator",
+            "description": "configure simulator",
+            "isasync": false,
+            "related": "querySimulatorMock",
+            "params": [
+                {
+                    "name": "count",
+                    "description": "number of times the mock is active",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "which command needs to be configured",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "clusterid",
+                    "description": "configure range: in a cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,updateCluster"
+                },
+                {
+                    "name": "jsonresponse",
+                    "description": "agent command response to be returned",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "configure range: in a pod",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "value",
+                    "description": "configuration options for this command, which is seperated by ;",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "zoneid",
+                    "description": "configure range: in a zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "hostid",
+                    "description": "configure range: in a host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID scope of the mock",
+                    "type": "long"
+                },
+                {
+                    "name": "count",
+                    "description": "number of times mock is executed, if not specified then mock remains active till cleaned up",
+                    "type": "integer"
+                },
+                {
+                    "name": "name",
+                    "description": "the agent command to be mocked",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the Cluster ID scope of the mock",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the mock ID",
+                    "type": "long"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the Host ID scope of the mock",
+                    "type": "long"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID scope of the mock",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "enableHAForZone",
+            "description": "Enables HA for a zone",
+            "since": "4.11",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listPhysicalNetworks",
+            "description": "Lists physical networks",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "updatePhysicalNetwork,createPhysicalNetwork",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "search by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list physical network by id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updatePhysicalNetwork,listPhysicalNetworks,createPhysicalNetwork"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the physical network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "name of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the uuid of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the vlan of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "isolationmethods",
+                    "description": "isolation methods",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomainrange",
+                    "description": "Broadcast domain range of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkspeed",
+                    "description": "the speed of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the physical network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "comma separated tag",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "cleanVMReservations",
             "description": "Cleanups VM reservations in the database.",
             "isasync": true,
-            "name": "cleanVMReservations",
             "params": [
 
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listFirewallRules",
+            "description": "Lists all firewall rules for an IP address.",
+            "isasync": false,
+            "related": "createFirewallRule,updateEgressFirewallRule",
+            "params": [
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "list firewall rules for certain network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3",
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the ID of IP address of the firewall services",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "Lists rule with the specified ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createIpForwardingRule,updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the public ip address for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer"
+                },
+                {
+                    "name": "destcidrlist",
+                    "description": "the cidr list to forward traffic to",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the firewall rule",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteBrocadeVcsDevice",
+            "description": " delete a Brocade VCS Switch",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "vcsdeviceid",
+                    "description": "Brocade Switch ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listBrocadeVcsDevices,addBrocadeVcsDevice"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "extractIso",
             "description": "Extracts an ISO",
             "isasync": true,
-            "name": "extractIso",
+            "related": "extractVolume,extractTemplate",
             "params": [
                 {
-                    "description": "the ID of the ISO file",
-                    "length": 255,
-                    "name": "id",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the URL to which the ISO would be extracted",
-                    "length": 2048,
                     "name": "url",
-                    "required": false,
-                    "type": "string"
+                    "description": "the URL to which the ISO would be extracted",
+                    "type": "string",
+                    "length": 2048,
+                    "required": false
                 },
                 {
-                    "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD",
+                    "name": "id",
+                    "description": "the ID of the ISO file",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "mode",
                     "required": true,
-                    "type": "string"
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 },
                 {
-                    "description": "the ID of the zone where the ISO is originally located",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the ID of the zone where the ISO is originally located",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "mode",
+                    "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "extractVolume,extractTemplate",
             "response": [
                 {
-                    "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
 
                 },
                 {
-                    "description": "the time and date the object was created",
+                    "name": "id",
+                    "description": "the id of extracted object",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "zone name the object was extracted from",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the time and date the object was created",
                     "type": "date"
                 },
                 {
-                    "description": "zone ID the object was extracted from",
                     "name": "zoneid",
+                    "description": "zone ID the object was extracted from",
                     "type": "string"
                 },
                 {
-                    "description": "the status of the extraction",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the account id to which the extracted object belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the extracted object",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the extracted object",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "zone name the object was extracted from",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of extracted object",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the percentage of the entity uploaded to the specified location",
                     "name": "uploadpercentage",
+                    "description": "the percentage of the entity uploaded to the specified location",
                     "type": "integer"
                 },
                 {
-                    "description": "",
-                    "name": "resultstring",
+                    "name": "name",
+                    "description": "the name of the extracted object",
                     "type": "string"
                 },
                 {
-                    "description": "the mode of extraction - upload or download",
-                    "name": "extractMode",
+                    "name": "state",
+                    "description": "the state of the extracted object",
                     "type": "string"
                 },
                 {
-                    "description": "type of the storage",
                     "name": "storagetype",
+                    "description": "type of the storage",
                     "type": "string"
                 },
                 {
-                    "description": "the upload id of extracted object",
+                    "name": "status",
+                    "description": "the status of the extraction",
+                    "type": "string"
+                },
+                {
                     "name": "extractId",
+                    "description": "the upload id of extracted object",
+                    "type": "string"
+                },
+                {
+                    "name": "extractMode",
+                    "description": "the mode of extraction - upload or download",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the extracted object belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "resultstring",
+                    "description": "",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createSecondaryStagingStore",
             "description": "create secondary staging store.",
             "isasync": false,
-            "name": "createSecondaryStagingStore",
+            "related": "listSwifts,updateCloudToUseObjectStore,addImageStore,addImageStoreS3,addSecondaryStorage,listImageStores",
             "params": [
                 {
-                    "description": "the details for the staging store",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the URL for the staging store",
-                    "length": 2048,
                     "name": "url",
-                    "required": true,
-                    "type": "string"
+                    "description": "the URL for the staging store",
+                    "type": "string",
+                    "length": 2048,
+                    "required": true
                 },
                 {
-                    "description": "the scope of the staging store: zone only for now",
-                    "length": 255,
-                    "name": "scope",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the staging store provider name",
-                    "length": 255,
-                    "name": "provider",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the staging store",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the Zone ID for the staging store",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "details",
+                    "description": "the details for the staging store",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provider",
+                    "description": "the staging store provider name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the staging store: zone only for now",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addSecondaryStorage,addImageStoreS3,updateCloudToUseObjectStore,listSwifts,addImageStore,listImageStores",
             "response": [
                 {
-                    "description": "the Zone name of the image store",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the image store",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
-                },
-                {
-                    "description": "the protocol of the image store",
                     "name": "protocol",
+                    "description": "the protocol of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the provider name of the image store",
                     "name": "providername",
+                    "description": "the provider name of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the scope of the image store",
+                    "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
                     "name": "scope",
+                    "description": "the scope of the image store",
                     "type": "scopetype"
                 },
                 {
-                    "description": "the name of the image store",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the image store",
                     "name": "zoneid",
+                    "description": "the Zone ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the image store",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createAffinityGroup",
             "description": "Creates an affinity/anti-affinity group",
             "isasync": true,
-            "name": "createAffinityGroup",
+            "related": "",
             "params": [
                 {
-                    "description": "optional description of the affinity group",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Type of the affinity group from the available affinity/anti-affinity group types",
-                    "length": 255,
-                    "name": "type",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "create affinity group for project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "domainId of the account owning the affinity group",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of the affinity group",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "name of the affinity group",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "an account for the affinity group. Must be used with domainId.",
+                    "name": "description",
+                    "description": "optional description of the affinity group",
+                    "type": "string",
                     "length": 255,
-                    "name": "account",
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "Type of the affinity group from the available affinity/anti-affinity group types",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "domainId of the account owning the affinity group",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "create affinity group for project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "account",
+                    "description": "an account for the affinity group. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the affinity group",
                     "name": "id",
+                    "description": "the ID of the affinity group",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID of the affinity group",
+                    "name": "account",
+                    "description": "the account owning the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the affinity group",
+                    "type": "string"
+                },
+                {
                     "name": "domainid",
+                    "description": "the domain ID of the affinity group",
                     "type": "string"
                 },
                 {
-                    "description": "virtual machine IDs associated with this affinity group",
+                    "name": "description",
+                    "description": "the description of the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the affinity group",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the affinity group",
+                    "type": "string"
+                },
+                {
                     "name": "virtualmachineIds",
+                    "description": "virtual machine IDs associated with this affinity group",
                     "type": "list"
                 },
                 {
-                    "description": "the project ID of the affinity group",
                     "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the affinity group",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the affinity group",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the account owning the affinity group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the affinity group",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the affinity group",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the affinity group",
-                    "name": "domain",
+                    "description": "the project ID of the affinity group",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Remove a VMware datacenter from a zone.",
-            "isasync": false,
-            "name": "removeVmwareDc",
-            "params": [
-                {
-                    "description": "The id of Zone from which VMware datacenter has to be removed.",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists all available Internal Load Balancer elements.",
-            "isasync": false,
             "name": "listInternalLoadBalancerElements",
+            "description": "Lists all available Internal Load Balancer elements.",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "createInternalLoadBalancerElement,configureInternalLoadBalancerElement",
             "params": [
                 {
-                    "description": "list internal load balancer elements by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listInternalLoadBalancerElements,configureInternalLoadBalancerElement,createInternalLoadBalancerElement",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list internal load balancer elements by enabled state",
-                    "length": 255,
-                    "name": "enabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list internal load balancer elements by network service provider id",
-                    "length": 255,
                     "name": "nspid",
-                    "related": "updateNetworkServiceProvider,addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes",
+                    "description": "list internal load balancer elements by network service provider id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listTrafficTypes,listNetworkServiceProviders,addNetworkServiceProvider,updateNetworkServiceProvider"
+                },
+                {
+                    "name": "enabled",
+                    "description": "list internal load balancer elements by enabled state",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list internal load balancer elements by id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listInternalLoadBalancerElements,createInternalLoadBalancerElement,configureInternalLoadBalancerElement"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "configureInternalLoadBalancerElement,createInternalLoadBalancerElement",
             "response": [
                 {
-                    "description": "the id of the internal load balancer element",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network service provider id of the element",
                     "name": "nspid",
+                    "description": "the physical network service provider id of the element",
                     "type": "string"
                 },
                 {
-                    "description": "Enabled/Disabled the element",
                     "name": "enabled",
+                    "description": "Enabled/Disabled the element",
                     "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the internal load balancer element",
+                    "type": "string"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
-            "description": "Updates load balancer health check policy",
-            "isasync": true,
             "name": "updateLBHealthCheckPolicy",
+            "description": "Updates load balancer health check policy",
+            "since": "4.4",
+            "isasync": true,
+            "related": "listLBHealthCheckPolicies,createLBHealthCheckPolicy",
             "params": [
                 {
-                    "description": "ID of load balancer health check policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listLBHealthCheckPolicies,updateLBHealthCheckPolicy,createLBHealthCheckPolicy",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
                     "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "an optional field, whether to the display the policy to the end user or not",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the policy to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of load balancer health check policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listLBHealthCheckPolicies,updateLBHealthCheckPolicy,createLBHealthCheckPolicy"
                 }
             ],
-            "related": "listLBHealthCheckPolicies,createLBHealthCheckPolicy",
             "response": [
                 {
-                    "description": "the id of the zone the HealthCheck policy belongs to",
-                    "name": "zoneid",
+                    "name": "domain",
+                    "description": "the domain of the HealthCheck policy",
                     "type": "string"
                 },
                 {
-                    "description": "the list of healthcheckpolicies",
                     "name": "healthcheckpolicy",
+                    "description": "the list of healthcheckpolicies",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "Number of consecutive health check success before declaring an instance healthy",
-                            "name": "healthcheckthresshold",
-                            "type": "int"
+                            "name": "description",
+                            "description": "the description of the healthcheck policy",
+                            "type": "string"
                         },
                         {
-                            "description": "Number of consecutive health check failures before declaring an instance unhealthy.",
                             "name": "unhealthcheckthresshold",
+                            "description": "Number of consecutive health check failures before declaring an instance unhealthy.",
                             "type": "int"
                         },
                         {
-                            "description": "Amount of time between health checks",
-                            "name": "healthcheckinterval",
+                            "name": "state",
+                            "description": "the state of the policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "responsetime",
+                            "description": "Time to wait when receiving a response from the health check",
                             "type": "int"
                         },
                         {
-                            "description": "the LB HealthCheck policy ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the pingpath  of the healthcheck policy",
-                            "name": "pingpath",
-                            "type": "string"
-                        },
-                        {
-                            "description": "is policy for display to the regular user",
                             "name": "fordisplay",
+                            "description": "is policy for display to the regular user",
                             "type": "boolean"
                         },
                         {
-                            "description": "the state of the policy",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Time to wait when receiving a response from the health check",
-                            "name": "responsetime",
+                            "name": "healthcheckinterval",
+                            "description": "Amount of time between health checks",
                             "type": "int"
                         },
                         {
-                            "description": "the description of the healthcheck policy",
-                            "name": "description",
+                            "name": "healthcheckthresshold",
+                            "description": "Number of consecutive health check success before declaring an instance healthy",
+                            "type": "int"
+                        },
+                        {
+                            "name": "pingpath",
+                            "description": "the pingpath  of the healthcheck policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the LB HealthCheck policy ID",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the LB rule ID",
+                    "name": "zoneid",
+                    "description": "the id of the zone the HealthCheck policy belongs to",
+                    "type": "string"
+                },
+                {
                     "name": "lbruleid",
+                    "description": "the LB rule ID",
                     "type": "string"
                 },
                 {
-                    "description": "the account of the HealthCheck policy",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the HealthCheck policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the HealthCheck policy",
                     "name": "domainid",
+                    "description": "the domain ID of the HealthCheck policy",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the HealthCheck policy",
                     "type": "string"
                 }
-            ],
-            "since": "4.4"
+            ]
         },
         {
+            "name": "rebootVirtualMachine",
             "description": "Reboots a virtual machine.",
             "isasync": true,
-            "name": "rebootVirtualMachine",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "updateVMAffinityGroup,rebootVirtualMachine,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,rebootVirtualMachine,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
+                    "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
                     "type": "integer"
                 },
                 {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the virtual machine",
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the service offering of the virtual machine",
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        }
+                    ]
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        }
+                    ]
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
                     "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
 
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
                 }
             ]
         },
         {
+            "name": "enableHAForCluster",
+            "description": "Enables HA cluster-wide",
+            "since": "4.11",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "clusterid",
+                    "description": "ID of the cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addCluster,updateCluster"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createLoadBalancerRule",
             "description": "Creates a load balancer rule",
             "isasync": true,
-            "name": "createLoadBalancerRule",
+            "related": "listLoadBalancerRules,updateLoadBalancerRule",
             "params": [
                 {
-                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitely. If not specified 1) defaulted to false when LB rule is being created for VPC guest network 2) in all other cases defaulted to true",
-                    "length": 255,
-                    "name": "openfirewall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "The guest network this rule will be created for. Required when public Ip address is not associated with any Guest network yet (VPC case)",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The protocol for the LB",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address ID from where the network traffic will be load balanced from",
-                    "length": 255,
-                    "name": "publicipid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the domain ID associated with the load balancer",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "zone where the load balancer is going to be created. This parameter is required when LB service provider is ElasticLoadBalancerVm",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "zone where the load balancer is going to be created. This parameter is required when LB service provider is ElasticLoadBalancerVm",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "name of the load balancer rule",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the load balancer. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the CIDR list to forward traffic from",
-                    "length": 255,
-                    "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the private port of the private IP address/virtual machine where the network traffic will be load balanced to",
-                    "length": 255,
-                    "name": "privateport",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "load balancer algorithm (source, roundrobin, leastconn)",
-                    "length": 255,
-                    "name": "algorithm",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the load balancer rule",
-                    "length": 4096,
                     "name": "description",
-                    "required": false,
-                    "type": "string"
+                    "description": "the description of the load balancer rule",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
                 },
                 {
-                    "description": "the public port from where the network traffic will be load balanced from",
+                    "name": "domainid",
+                    "description": "the domain ID associated with the load balancer",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
                     "name": "publicport",
-                    "required": true,
-                    "type": "integer"
+                    "description": "the public port from where the network traffic will be load balanced from",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "privateport",
+                    "description": "the private port of the private IP address/virtual machine where the network traffic will be load balanced to",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "openfirewall",
+                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitely. If not specified 1) defaulted to false when LB rule is being created for VPC guest network 2) in all other cases defaulted to true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the CIDR list to forward traffic from",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "protocol",
+                    "description": "The protocol for the LB",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "networkid",
+                    "description": "The guest network this rule will be created for. Required when public Ip address is not associated with any Guest network yet (VPC case)",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the load balancer rule",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "algorithm",
+                    "description": "load balancer algorithm (source, roundrobin, leastconn)",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address ID from where the network traffic will be load balanced from",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the load balancer. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listLoadBalancerRules,updateLoadBalancerRule",
             "response": [
                 {
-                    "description": "the description of the load balancer",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                    "name": "algorithm",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the load balancer",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the guest network the lb rule belongs to",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the loadbalanacer rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
                     "name": "state",
+                    "description": "the state of the rule",
                     "type": "string"
                 },
                 {
-                    "description": "the load balancer rule ID",
-                    "name": "id",
+                    "name": "zonename",
+                    "description": "the name of the zone the load balancer rule belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the private port",
-                    "name": "privateport",
+                    "name": "project",
+                    "description": "the project name of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "the public ip address",
-                    "name": "publicip",
+                    "name": "publicipid",
+                    "description": "the public ip address id",
                     "type": "string"
                 },
                 {
-                    "description": "the domain of the load balancer rule",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the zone the rule belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the load balancer",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the load balancer rule",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the load balancer",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public port",
                     "name": "publicport",
+                    "description": "the public port",
                     "type": "string"
                 },
                 {
-                    "description": "the account of the load balancer rule",
+                    "name": "id",
+                    "description": "the load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "privateport",
+                    "description": "the private port",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the id of the guest network the lb rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "algorithm",
+                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the loadbalanacer rule",
+                    "type": "string"
+                },
+                {
                     "name": "account",
+                    "description": "the account of the load balancer rule",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with load balancer",
+                    "name": "publicip",
+                    "description": "the public ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the rule belongs to",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with load balancer",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
                             "name": "resourceid",
+                            "description": "id of the resource",
                             "type": "string"
                         },
                         {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
+                            "name": "customer",
+                            "description": "customer associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
                             "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Adds a guest OS name to hypervisor OS name mapping",
-            "isasync": true,
-            "name": "addGuestOsMapping",
+            "name": "listNuageVspDomainTemplates",
+            "description": "Lists Nuage VSP domain templates",
+            "since": "4.11.0",
+            "isasync": false,
+            "related": "listNuageVspGlobalDomainTemplate,upgradeRouterTemplate",
             "params": [
                 {
-                    "description": "Hypervisor type. One of : XenServer, KVM, VMWare",
+                    "name": "zoneid",
+                    "description": "the zone ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "hypervisor",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "OS name specific to the hypervisor",
-                    "length": 255,
-                    "name": "osnameforhypervisor",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor version to create the mapping for. Use 'default' for default versions",
-                    "length": 255,
-                    "name": "hypervisorversion",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "UUID of Guest OS type. Either the UUID or Display Name must be passed",
-                    "length": 255,
-                    "name": "ostypeid",
-                    "related": "addGuestOs,listOsTypes",
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "Display Name of Guest OS standard type. Either Display Name or UUID must be passed",
+                    "name": "physicalnetworkid",
+                    "description": "the physical network ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "osdisplayname",
                     "required": false,
-                    "type": "string"
+                    "related": "updatePhysicalNetwork,createPhysicalNetwork"
+                },
+                {
+                    "name": "keyword",
+                    "description": "filters the domain templates which contain the keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 }
             ],
-            "related": "updateGuestOsMapping",
             "response": [
                 {
-                    "description": "version of the hypervisor for mapping",
-                    "name": "hypervisorversion",
+
+                },
+                {
+                    "name": "jobid",
+                    "description": "the UUID of the latest async job acting on this object",
                     "type": "string"
                 },
                 {
-                    "description": "standard display name for the Guest OS",
-                    "name": "osdisplayname",
-                    "type": "string"
+                    "name": "jobstatus",
+                    "description": "the current status of the latest async job acting on this object",
+                    "type": "integer"
                 },
                 {
-                    "description": "the ID of the Guest OS type",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Guest OS mapping",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "hypervisor specific name for the Guest OS",
-                    "name": "osnameforhypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "is the mapping user defined",
-                    "name": "isuserdefined",
-                    "type": "string"
+
                 }
-            ],
-            "since": "4.4.0"
+            ]
         },
         {
-            "description": "Disables out-of-band management for a zone",
+            "name": "addGuestOsMapping",
+            "description": "Adds a guest OS name to hypervisor OS name mapping",
+            "since": "4.4.0",
             "isasync": true,
-            "name": "disableOutOfBandManagementForZone",
+            "related": "updateGuestOsMapping",
             "params": [
                 {
-                    "description": "the ID of the zone",
+                    "name": "hypervisorversion",
+                    "description": "Hypervisor version to create the mapping for. Use 'default' for default versions",
+                    "type": "string",
                     "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
+                    "required": true
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "Display Name of Guest OS standard type. Either Display Name or UUID must be passed",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "UUID of Guest OS type. Either the UUID or Display Name must be passed",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listOsTypes,addGuestOs"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor type. One of : XenServer, KVM, VMWare",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "osnameforhypervisor",
+                    "description": "OS name specific to the hypervisor",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "disableOutOfBandManagementForCluster,disableOutOfBandManagementForHost,issueOutOfBandManagementPowerAction,enableOutOfBandManagementForZone,enableOutOfBandManagementForCluster,changeOutOfBandManagementPassword,enableOutOfBandManagementForHost",
             "response": [
                 {
-                    "description": "the out-of-band management interface address",
-                    "name": "address",
+                    "name": "hypervisor",
+                    "description": "the hypervisor",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
+                    "name": "ostypeid",
+                    "description": "the ID of the Guest OS type",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management interface port",
+                    "name": "id",
+                    "description": "the ID of the Guest OS mapping",
+                    "type": "string"
+                },
+                {
+                    "name": "osnameforhypervisor",
+                    "description": "hypervisor specific name for the Guest OS",
+                    "type": "string"
+                },
+                {
+                    "name": "isuserdefined",
+                    "description": "is the mapping user defined",
+                    "type": "string"
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "standard display name for the Guest OS",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "version of the hypervisor for mapping",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "disableOutOfBandManagementForZone",
+            "description": "Disables out-of-band management for a zone",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "enableOutOfBandManagementForZone,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,issueOutOfBandManagementPowerAction,changeOutOfBandManagementPassword,disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                }
+            ],
+            "response": [
+                {
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                },
+                {
                     "name": "port",
+                    "description": "the out-of-band management interface port",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the host",
-                    "name": "hostid",
+                    "name": "address",
+                    "description": "the out-of-band management interface address",
                     "type": "string"
                 },
                 {
-                    "description": "the operation result",
-                    "name": "status",
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
                     "type": "boolean"
                 },
                 {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
                     "type": "string"
                 },
                 {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the out-of-band management interface powerState of the host",
                     "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
                     "type": "powerstate"
                 },
                 {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": "configures a F5 load balancer device",
-            "isasync": true,
-            "name": "configureF5LoadBalancer",
-            "params": [
-                {
-                    "description": "F5 load balancer device ID",
-                    "length": 255,
-                    "name": "lbdeviceid",
-                    "related": "listF5LoadBalancers,addF5LoadBalancer,configureF5LoadBalancer",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "capacity of the device, Capacity will be interpreted as number of networks device can handle",
-                    "length": 255,
-                    "name": "lbdevicecapacity",
-                    "required": false,
-                    "type": "long"
-                }
-            ],
-            "related": "listF5LoadBalancers,addF5LoadBalancer",
-            "response": [
-                {
-                    "description": "the management IP address of the external load balancer",
-                    "name": "ipaddress",
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
                     "type": "string"
                 },
                 {
-                    "description": "true if device is dedicated for an account",
-                    "name": "lbdevicededicated",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device state",
-                    "name": "lbdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device capacity",
-                    "name": "lbdevicecapacity",
-                    "type": "long"
-                },
-                {
-                    "description": "device name",
-                    "name": "lbdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this F5 device belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the load balancer",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the F5 load balancer",
-                    "name": "lbdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the load balancer",
-                    "name": "privateinterface",
+                    "name": "hostid",
+                    "description": "the ID of the host",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateNetworkOffering",
             "description": "Updates a network offering.",
             "isasync": false,
-            "name": "updateNetworkOffering",
+            "related": "createNetworkOffering,listNetworkOfferings",
             "params": [
                 {
-                    "description": "sort key of the network offering, integer",
-                    "length": 255,
-                    "name": "sortkey",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the id of the network offering",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createNetworkOffering,listNetworkOfferings,updateNetworkOffering",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.",
-                    "length": 255,
-                    "name": "keepaliveenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the network offering",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the network offering",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the availability of network offering. Default value is Required for Guest Virtual network offering; Optional for Guest Direct network offering",
-                    "length": 255,
                     "name": "availability",
-                    "required": false,
-                    "type": "string"
+                    "description": "the availability of network offering. Default value is Required for Guest Virtual network offering; Optional for Guest Direct network offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "maximum number of concurrent connections supported by the network offering",
-                    "length": 255,
                     "name": "maxconnections",
-                    "required": false,
-                    "type": "integer"
+                    "description": "maximum number of concurrent connections supported by the network offering",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "update state for the network offering",
+                    "name": "keepaliveenabled",
+                    "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "state",
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the network offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "createNetworkOffering,listNetworkOfferings,updateNetworkOffering"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "update state for the network offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sortkey",
+                    "description": "sort key of the network offering, integer",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the network offering.",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
                 }
             ],
-            "related": "createNetworkOffering,listNetworkOfferings",
             "response": [
                 {
-                    "description": "true if network offering supports persistent networks, false otherwise",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "conservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network offering supports network that span multiple zones",
-                    "name": "supportsstrechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the id of the network offering",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering can be used by VPC networks only",
                     "name": "forvpc",
+                    "description": "true if network offering can be used by VPC networks only",
                     "type": "boolean"
                 },
                 {
-                    "description": "additional key/value details tied with network offering",
                     "name": "details",
+                    "description": "additional key/value details tied with network offering",
                     "type": "map"
                 },
                 {
-                    "description": "the tags for the network offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network offering. Can be Disabled/Enabled/Inactive",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering used by virtual router provider",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date this network offering was created",
                     "name": "created",
+                    "description": "the date this network offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "guest type of the network offering, can be Shared or Isolated",
-                    "name": "guestiptype",
+                    "name": "tags",
+                    "description": "the tags for the network offering",
                     "type": "string"
                 },
                 {
-                    "description": "true if network offering is default, false otherwise",
                     "name": "isdefault",
+                    "description": "true if network offering is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if network offering supports vlans, false otherwise",
-                    "name": "specifyvlan",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
-                    "name": "egressdefaultpolicy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "maximum number of concurrents connections to be handled by lb",
-                    "name": "maxconnections",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the network offering",
                     "name": "name",
+                    "description": "the name of the network offering",
                     "type": "string"
                 },
                 {
-                    "description": "data transfer rate in megabits per second allowed.",
-                    "name": "networkrate",
+                    "name": "displaytext",
+                    "description": "an alternate display text of the network offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "supportsstrechedl2subnet",
+                    "description": "true if network offering supports network that span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.",
+                    "type": "string"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "true if network offering supports persistent networks, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "specifyvlan",
+                    "description": "true if network offering supports vlans, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "egressdefaultpolicy",
+                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
+                    "type": "boolean"
+                },
+                {
+                    "name": "availability",
+                    "description": "availability of the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "maxconnections",
+                    "description": "maximum number of concurrents connections to be handled by lb",
                     "type": "integer"
                 },
                 {
-                    "description": "an alternate display text of the network offering.",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed.",
+                    "type": "integer"
                 },
                 {
-                    "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of supported services",
                     "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
                             "name": "name",
+                            "description": "the service name",
                             "type": "string"
                         },
                         {
-                            "description": "the service provider name",
                             "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
                                     "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
                                     "type": "boolean"
                                 },
                                 {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
+                                    "name": "name",
+                                    "description": "the provider name",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the provider name",
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "name",
+                                    "description": "the capability name",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "availability of the network offering",
-                    "name": "availability",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering used by virtual router provider",
+                    "type": "string"
+                },
+                {
+                    "name": "supportspublicaccess",
+                    "description": "true if network offering supports public access for guest networks",
+                    "type": "boolean"
+                },
+                {
+                    "name": "conservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network offering supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network offering. Can be Disabled/Enabled/Inactive",
+                    "type": "string"
+                },
+                {
+                    "name": "guestiptype",
+                    "description": "guest type of the network offering, can be Shared or Isolated",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateVPC",
             "description": "Updates a VPC",
             "isasync": true,
-            "name": "updateVPC",
+            "related": "createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs",
             "params": [
                 {
-                    "description": "the name of the VPC",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the VPC",
-                    "length": 255,
-                    "name": "id",
-                    "related": "restartVPC,updateVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
                     "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the display text of the VPC",
+                    "name": "id",
+                    "description": "the id of the VPC",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
+                    "required": true,
+                    "related": "updateVPC,createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
                 },
                 {
-                    "description": "an optional field, whether to the display the vpc to the end user or not",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpc to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "restartVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
             "response": [
                 {
-                    "description": "state of the VPC. Can be Inactive/Enabled",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the VPC owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this VPC was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the project id of the VPC",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the project",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "if this VPC has redundant router",
-                    "name": "redundantvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "is vpc for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the zone the VPC belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of supported services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the network domain of the VPC",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "vpc offering id the VPC is created from",
-                    "name": "vpcofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr the VPC",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "true VPC requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an alternate display text of the VPC.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the VPC",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of networks belongign to the VPC",
                     "name": "network",
+                    "description": "the list of networks belongign to the VPC",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network supports specifying ip ranges, false otherwise",
-                            "name": "specifyipranges",
+                            "name": "restartrequired",
+                            "description": "true network requires restart",
                             "type": "boolean"
                         },
                         {
-                            "description": "display text of the network offering the network is created from",
-                            "name": "networkofferingdisplaytext",
+                            "name": "vpcid",
+                            "description": "VPC the network belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "related to what other network configuration",
-                            "name": "related",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's gateway",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                            "name": "cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
                             "name": "reservediprange",
+                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
                             "type": "string"
                         },
                         {
-                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                            "name": "networkcidr",
+                            "name": "netmask",
+                            "description": "the network's netmask",
                             "type": "string"
                         },
                         {
-                            "description": "the first DNS for the network",
-                            "name": "dns1",
+                            "name": "type",
+                            "description": "the type of the network",
                             "type": "string"
                         },
                         {
-                            "description": "the list of services",
-                            "name": "service",
-                            "response": [
-                                {
-                                    "description": "the service name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the service provider name",
-                                    "name": "provider",
-                                    "response": [
-                                        {
-                                            "description": "state of the network provider",
-                                            "name": "state",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the destination physical network",
-                                            "name": "destinationphysicalnetworkid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "uuid of the network provider",
-                                            "name": "id",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the provider name",
-                                            "name": "name",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the physical network this belongs to",
-                                            "name": "physicalnetworkid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "services for this provider",
-                                            "name": "servicelist",
-                                            "type": "list"
-                                        },
-                                        {
-                                            "description": "true if individual services can be enabled/disabled",
-                                            "name": "canenableindividualservice",
-                                            "type": "boolean"
-                                        }
-                                    ],
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the list of capabilities",
-                                    "name": "capability",
-                                    "response": [
-                                        {
-                                            "description": "can this service capability value can be choosable while creatine network offerings",
-                                            "name": "canchooseservicecapability",
-                                            "type": "boolean"
-                                        },
-                                        {
-                                            "description": "the capability name",
-                                            "name": "name",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the capability value",
-                                            "name": "value",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "list"
-                                }
-                            ],
-                            "type": "list"
+                            "name": "networkofferingavailability",
+                            "description": "availability of the network offering the network is created from",
+                            "type": "string"
                         },
                         {
-                            "description": "zone id of the network",
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                            "type": "string"
+                        },
+                        {
+                            "name": "issystem",
+                            "description": "true if network is system, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
                             "name": "zoneid",
+                            "description": "zone id of the network",
                             "type": "string"
                         },
                         {
-                            "description": "network offering id the network is created from",
-                            "name": "networkofferingid",
+                            "name": "dns1",
+                            "description": "the first DNS for the network",
                             "type": "string"
                         },
                         {
-                            "description": "true if network offering is ip conserve mode enabled",
-                            "name": "networkofferingconservemode",
+                            "name": "networkcidr",
+                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                            "type": "string"
+                        },
+                        {
+                            "name": "specifyipranges",
+                            "description": "true if network supports specifying ip ranges, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the name of the zone the network belongs to",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the second DNS for the network",
-                            "name": "dns2",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network can span multiple zones",
-                            "name": "strechedl2subnet",
+                            "name": "canusefordeploy",
+                            "description": "list networks available for vm deployment",
                             "type": "boolean"
                         },
                         {
-                            "description": "list networks that are persistent",
-                            "name": "ispersistent",
+                            "name": "subdomainaccess",
+                            "description": "true if users from subdomains can access the domain level network",
                             "type": "boolean"
                         },
                         {
-                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                            "name": "vlan",
+                            "name": "project",
+                            "description": "the project name of the address",
                             "type": "string"
                         },
                         {
-                            "description": "the owner of the network",
-                            "name": "account",
+                            "name": "networkofferingdisplaytext",
+                            "description": "display text of the network offering the network is created from",
                             "type": "string"
                         },
                         {
-                            "description": "the physical network id",
+                            "name": "externalid",
+                            "description": "The external id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "state of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaynetwork",
+                            "description": "an optional field, whether to the display the network to the end user or not.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the network's gateway",
+                            "type": "string"
+                        },
+                        {
                             "name": "physicalnetworkid",
+                            "description": "the physical network id",
                             "type": "string"
                         },
                         {
-                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                            "name": "strechedl2subnet",
+                            "description": "true if network can span multiple zones",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "acltype",
+                            "description": "acl type - access type to the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the ipaddress",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if network is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain id of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaytext",
+                            "description": "the displaytext of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vlan",
+                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "aclid",
+                            "description": "ACL Id associated with the VPC network",
+                            "type": "string"
+                        },
+                        {
                             "name": "zonesnetworkspans",
+                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
                             "type": "set"
                         },
                         {
-                            "description": "name of the network offering the network is created from",
-                            "name": "networkofferingname",
+                            "name": "related",
+                            "description": "related to what other network configuration",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
+                            "name": "broadcastdomaintype",
+                            "description": "Broadcast domain type of the network",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the network",
-                            "name": "name",
-                            "type": "string"
+                            "name": "ispersistent",
+                            "description": "list networks that are persistent",
+                            "type": "boolean"
                         },
                         {
-                            "description": "the network domain",
-                            "name": "networkdomain",
-                            "type": "string"
+                            "name": "networkofferingconservemode",
+                            "description": "true if network offering is ip conserve mode enabled",
+                            "type": "boolean"
                         },
                         {
-                            "description": "the list of resource tags associated with network",
-                            "name": "tags",
+                            "name": "service",
+                            "description": "the list of services",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
+                                    "name": "name",
+                                    "description": "the service name",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
+                                    "name": "capability",
+                                    "description": "the list of capabilities",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "canchooseservicecapability",
+                                            "description": "can this service capability value can be choosable while creatine network offerings",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "name",
+                                            "description": "the capability name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "the capability value",
+                                            "type": "string"
+                                        }
+                                    ]
                                 },
                                 {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
+                                    "name": "provider",
+                                    "description": "the service provider name",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "id",
+                                            "description": "uuid of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "canenableindividualservice",
+                                            "description": "true if individual services can be enabled/disabled",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "destinationphysicalnetworkid",
+                                            "description": "the destination physical network",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "servicelist",
+                                            "description": "services for this provider",
+                                            "type": "list"
+                                        },
+                                        {
+                                            "name": "name",
+                                            "description": "the provider name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "physicalnetworkid",
+                                            "description": "the physical network this belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "state",
+                                            "description": "state of the network provider",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "dns2",
+                            "description": "the second DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingname",
+                            "description": "name of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with network",
+                            "type": "list",
+                            "response": [
                                 {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
                                     "name": "project",
+                                    "description": "the project name where tag belongs to",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the ID of the domain associated with the tag",
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "true if users from subdomains can access the domain level network",
-                            "name": "subdomainaccess",
+                            "name": "account",
+                            "description": "the owner of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingid",
+                            "description": "network offering id the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "redundantrouter",
+                            "description": "If the network has redundant routers enabled",
                             "type": "boolean"
                         },
                         {
-                            "description": "true if network is system, false otherwise",
-                            "name": "issystem",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "true network requires restart",
-                            "name": "restartrequired",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the id of the network",
-                            "name": "id",
+                            "name": "networkdomain",
+                            "description": "the network domain",
                             "type": "string"
                         },
                         {
-                            "description": "an optional field, whether to the display the network to the end user or not.",
-                            "name": "displaynetwork",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the traffic type of the network",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's netmask",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain id of the network owner",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Broadcast domain type of the network",
-                            "name": "broadcastdomaintype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the ipaddress",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the address",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "acl type - access type to the network",
-                            "name": "acltype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "VPC the network belongs to",
-                            "name": "vpcid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the displaytext of the network",
-                            "name": "displaytext",
-                            "type": "string"
-                        },
-                        {
-                            "description": "availability of the network offering the network is created from",
-                            "name": "networkofferingavailability",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the network owner",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "list networks available for vm deployment",
-                            "name": "canusefordeploy",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the type of the network",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "state of the network",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "ACL Id associated with the VPC network",
-                            "name": "aclid",
+                            "name": "zonename",
+                            "description": "the name of the zone the network belongs to",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the id of the VPC",
-                    "name": "id",
+                    "name": "vpcofferingid",
+                    "description": "vpc offering id the VPC is created from",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the VPC",
-                    "name": "project",
+                    "name": "state",
+                    "description": "state of the VPC. Can be Inactive/Enabled",
                     "type": "string"
                 },
                 {
-                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
+                    "name": "displaytext",
+                    "description": "an alternate display text of the VPC.",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the VPC belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpc for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the project",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
                     "name": "distributedvpcrouter",
+                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
                     "type": "boolean"
                 },
                 {
-                    "description": "zone id of the vpc",
-                    "name": "zoneid",
+                    "name": "networkdomain",
+                    "description": "the network domain of the VPC",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the VPC",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if VPC is region level",
                     "name": "regionlevelvpc",
+                    "description": "true if VPC is region level",
                     "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the vpc",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the VPC owner",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantvpcrouter",
+                    "description": "if this VPC has redundant router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true VPC requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cidr",
+                    "description": "the cidr the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this VPC was created",
+                    "type": "date"
                 }
             ]
         },
         {
-            "description": "Changes out-of-band management interface password on the host and updates the interface configuration in CloudStack if the operation succeeds, else reverts the old password",
-            "isasync": true,
-            "name": "changeOutOfBandManagementPassword",
-            "params": [
-                {
-                    "description": "the new host management interface password of maximum length 16, if none is provided a random password would be used",
-                    "length": 255,
-                    "name": "password",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "disableOutOfBandManagementForCluster,disableOutOfBandManagementForHost,issueOutOfBandManagementPowerAction,enableOutOfBandManagementForZone,enableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
-            "response": [
-                {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
-                    "type": "string"
-                },
-                {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface port",
-                    "name": "port",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface powerState of the host",
-                    "name": "powerstate",
-                    "type": "powerstate"
-                },
-                {
-                    "description": "the out-of-band management interface address",
-                    "name": "address",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
+            "name": "deleteEgressFirewallRule",
             "description": "Deletes an egress firewall rule",
             "isasync": true,
-            "name": "deleteEgressFirewallRule",
             "params": [
                 {
-                    "description": "the ID of the firewall rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "listIpForwardingRules,createIpForwardingRule,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
+                    "description": "the ID of the firewall rule",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createIpForwardingRule,updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "stopSystemVm",
             "description": "Stops a system VM.",
             "isasync": true,
-            "name": "stopSystemVm",
+            "related": "changeServiceForSystemVm,migrateSystemVm,startSystemVm,listSystemVms",
             "params": [
                 {
-                    "description": "The ID of the system virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "changeServiceForSystemVm,migrateSystemVm,listSystemVms,stopSystemVm,startSystemVm",
+                    "description": "The ID of the system virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "changeServiceForSystemVm,migrateSystemVm,stopSystemVm,startSystemVm,listSystemVms"
                 },
                 {
-                    "description": "Force stop the VM.  The caller knows the VM is stopped.",
-                    "length": 255,
                     "name": "forced",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "Force stop the VM.  The caller knows the VM is stopped.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "changeServiceForSystemVm,migrateSystemVm,listSystemVms,startSystemVm",
             "response": [
                 {
-                    "description": "the name of the system VM",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the system VM",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the gateway for the system VM",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the system VM was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the system VM",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the system VM",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the system VM",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the system VM",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the system VM",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the private MAC address for the system VM",
-                    "name": "privatemacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the system VM",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the system VM",
                     "name": "podid",
+                    "description": "the Pod ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
+                    "name": "hostid",
+                    "description": "the host ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
                     "type": "string"
                 },
                 {
-                    "description": "the hostname for the system VM",
+                    "name": "networkdomain",
+                    "description": "the network domain for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "hostname",
+                    "description": "the hostname for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the system VM type",
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "systemvmtype",
+                    "description": "the system VM type",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID for the system VM",
-                    "name": "templateid",
+                    "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the number of active console sessions for the console proxy system vm",
+                    "name": "gateway",
+                    "description": "the gateway for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
                     "type": "integer"
                 },
                 {
-                    "description": "the Zone name for the system VM",
-                    "name": "zonename",
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the private IP address for the system VM",
+                    "name": "zonename",
+                    "description": "the Zone name for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "privateip",
+                    "description": "the private IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the system VM was created",
+                    "type": "date"
+                }
+            ]
+        },
+        {
+            "name": "changeOutOfBandManagementPassword",
+            "description": "Changes out-of-band management interface password on the host and updates the interface configuration in CloudStack if the operation succeeds, else reverts the old password",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "enableOutOfBandManagementForZone,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,issueOutOfBandManagementPowerAction,disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
+            "params": [
+                {
+                    "name": "password",
+                    "description": "the new host management interface password of maximum length 16, if none is provided a random password would be used",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
+                    "type": "powerstate"
+                },
+                {
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
+                },
+                {
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "address",
+                    "description": "the out-of-band management interface address",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
+                    "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "the out-of-band management interface port",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "description",
+                    "description": "the operation result description",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "List resource detail(s)",
-            "isasync": false,
             "name": "listResourceDetails",
+            "description": "List resource detail(s)",
+            "since": "4.2",
+            "isasync": false,
+            "related": "listTags",
             "params": [
                 {
-                    "description": "list by key",
-                    "length": 255,
                     "name": "key",
-                    "required": false,
-                    "type": "string"
+                    "description": "list by key",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list by key, value. Needs to be passed only along with key",
-                    "length": 255,
-                    "name": "value",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "list by resource type",
-                    "length": 255,
-                    "name": "resourcetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "if set to true, only details marked with display=true, are returned. False by default",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list by resource id",
-                    "length": 255,
-                    "name": "resourceid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "listall",
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "value",
+                    "description": "list by key, value. Needs to be passed only along with key",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "list by resource type",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "resourceid",
+                    "description": "list by resource id",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "if set to true, only details marked with display=true, are returned. False by default",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3"
                 }
             ],
-            "related": "listTags",
             "response": [
                 {
-                    "description": "the ID of the domain associated with the tag",
                     "name": "domainid",
+                    "description": "the ID of the domain associated with the tag",
                     "type": "string"
                 },
                 {
-                    "description": "id of the resource",
-                    "name": "resourceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the tag",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "resource type",
-                    "name": "resourcetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id the tag belongs to",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "tag key name",
-                    "name": "key",
-                    "type": "string"
-                },
-                {
-                    "description": "tag value",
-                    "name": "value",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name where tag belongs to",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "customer associated with the tag",
                     "name": "customer",
+                    "description": "customer associated with the tag",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the tag",
+                    "name": "projectid",
+                    "description": "the project id the tag belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the tag",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name where tag belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "resource type",
+                    "type": "string"
+                },
+                {
+                    "name": "resourceid",
+                    "description": "id of the resource",
+                    "type": "string"
+                },
+                {
                     "name": "account",
+                    "description": "the account associated with the tag",
+                    "type": "string"
+                },
+                {
+                    "name": "value",
+                    "description": "tag value",
+                    "type": "string"
+                },
+                {
+                    "name": "key",
+                    "description": "tag key name",
                     "type": "string"
                 }
-            ],
-            "since": "4.2"
+            ]
         },
         {
-            "description": "Creates a network offering.",
-            "isasync": false,
             "name": "createNetworkOffering",
+            "description": "Creates a network offering.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "listNetworkOfferings",
             "params": [
                 {
-                    "description": "true if network offering supports persistent networks; defaulted to false if not specified",
-                    "length": 255,
-                    "name": "ispersistent",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "services supported by the network offering",
-                    "length": 255,
-                    "name": "supportedservices",
-                    "required": true,
-                    "type": "list"
-                },
-                {
-                    "description": "data transfer rate in megabits per second allowed",
-                    "length": 255,
-                    "name": "networkrate",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "desired service capabilities as part of network offering",
-                    "length": 255,
-                    "name": "servicecapabilitylist",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "Network offering details in key/value pairs. Supported keys are internallbprovider/publiclbprovider with service provider as a value",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "since": "4.2.0",
-                    "type": "map"
-                },
-                {
-                    "description": "the display text of the network offering",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "true if the network offering is IP conserve mode enabled",
-                    "length": 255,
-                    "name": "conservemode",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the network offering",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network",
-                    "length": 255,
-                    "name": "serviceproviderlist",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the traffic type for the network offering. Supported type in current release is GUEST only",
-                    "length": 255,
-                    "name": "traffictype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "maximum number of concurrent connections supported by the network offering",
-                    "length": 255,
-                    "name": "maxconnections",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
-                    "length": 255,
-                    "name": "egressdefaultpolicy",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the availability of network offering. Default value is Optional",
-                    "length": 255,
-                    "name": "availability",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "guest type of the network offering: Shared or Isolated",
-                    "length": 255,
-                    "name": "guestiptype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.",
-                    "length": 255,
-                    "name": "keepaliveenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the service offering ID used by virtual router provider",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if network offering supports vlans",
-                    "length": 255,
-                    "name": "specifyvlan",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the tags for the network offering.",
-                    "length": 4096,
                     "name": "tags",
-                    "required": false,
-                    "type": "string"
+                    "description": "the tags for the network offering.",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
                 },
                 {
-                    "description": "true if network offering supports specifying ip ranges; defaulted to false if not specified",
+                    "name": "forvpc",
+                    "description": "true if network offering is meant to be used for VPC, false otherwise.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "specifyipranges",
+                    "required": false
+                },
+                {
+                    "name": "maxconnections",
+                    "description": "maximum number of concurrent connections supported by the network offering",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "serviceproviderlist",
+                    "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "true if network offering supports persistent networks; defaulted to false if not specified",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keepaliveenabled",
+                    "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "servicecapabilitylist",
+                    "description": "desired service capabilities as part of network offering",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "availability",
+                    "description": "the availability of network offering. Default value is Optional",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "supportedservices",
+                    "description": "services supported by the network offering",
+                    "type": "list",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "egressdefaultpolicy",
+                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "details",
+                    "description": "Network offering details in key/value pairs. Supported keys are internallbprovider/publiclbprovider with service provider as a value, and promiscuousmode/macaddresschanges/forgedtransmits with true/false as value to accept/reject the security settings if available for a nic/portgroup",
+                    "type": "map",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "since": "4.2.0"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the service offering ID used by virtual router provider",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateServiceOffering,createServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the network offering. Supported type in current release is GUEST only",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "guestiptype",
+                    "description": "guest type of the network offering: Shared or Isolated",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "specifyvlan",
+                    "description": "true if network offering supports vlans",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the network offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "conservemode",
+                    "description": "true if the network offering is IP conserve mode enabled",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network offering supports specifying ip ranges; defaulted to false if not specified",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listNetworkOfferings",
             "response": [
                 {
-                    "description": "the ID of the service offering used by virtual router provider",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the network offering.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "guest type of the network offering, can be Shared or Isolated",
-                    "name": "guestiptype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering can be used by VPC networks only",
-                    "name": "forvpc",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network offering supports persistent networks, false otherwise",
                     "name": "ispersistent",
+                    "description": "true if network offering supports persistent networks, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
-                    "name": "egressdefaultpolicy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the network offering",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "availability of the network offering",
-                    "name": "availability",
-                    "type": "string"
-                },
-                {
-                    "description": "data transfer rate in megabits per second allowed.",
-                    "name": "networkrate",
-                    "type": "integer"
-                },
-                {
-                    "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
                     "name": "conservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
                     "type": "boolean"
                 },
                 {
-                    "description": "the date this network offering was created",
+                    "name": "guestiptype",
+                    "description": "guest type of the network offering, can be Shared or Isolated",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network offering. Can be Disabled/Enabled/Inactive",
+                    "type": "string"
+                },
+                {
+                    "name": "egressdefaultpolicy",
+                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
+                    "type": "boolean"
+                },
+                {
+                    "name": "details",
+                    "description": "additional key/value details tied with network offering",
+                    "type": "map"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "availability",
+                    "description": "availability of the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the network offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.",
+                    "type": "string"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network offering supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "supportsstrechedl2subnet",
+                    "description": "true if network offering supports network that span multiple zones",
+                    "type": "boolean"
+                },
+                {
                     "name": "created",
+                    "description": "the date this network offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "additional key/value details tied with network offering",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "true if network offering supports vlans, false otherwise",
                     "name": "specifyvlan",
+                    "description": "true if network offering supports vlans, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if network offering supports network that span multiple zones",
-                    "name": "supportsstrechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the id of the network offering",
-                    "name": "id",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering used by virtual router provider",
                     "type": "string"
                 },
                 {
-                    "description": "true if network offering is default, false otherwise",
+                    "name": "forvpc",
+                    "description": "true if network offering can be used by VPC networks only",
+                    "type": "boolean"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
                     "name": "isdefault",
+                    "description": "true if network offering is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the tags for the network offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the network offering. Can be Disabled/Enabled/Inactive",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "maximum number of concurrents connections to be handled by lb",
-                    "name": "maxconnections",
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed.",
                     "type": "integer"
                 },
                 {
-                    "description": "the list of supported services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
+                    "name": "maxconnections",
+                    "description": "maximum number of concurrents connections to be handled by lb",
+                    "type": "integer"
+                },
+                {
+                    "name": "supportspublicaccess",
+                    "description": "true if network offering supports public access for guest networks",
+                    "type": "boolean"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "dedicateCluster",
             "description": "Dedicate an existing cluster",
             "isasync": true,
-            "name": "dedicateCluster",
+            "related": "listDedicatedClusters",
             "params": [
                 {
-                    "description": "the ID of the containing domain",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the account which needs dedication. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Cluster",
-                    "length": 255,
                     "name": "clusterid",
-                    "related": "addCluster,updateCluster",
+                    "description": "the ID of the Cluster",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addCluster,updateCluster"
+                },
+                {
+                    "name": "account",
+                    "description": "the name of the account which needs dedication. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the containing domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 }
             ],
-            "related": "listDedicatedClusters",
             "response": [
                 {
-                    "description": "the domain ID of the cluster",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Dedication Affinity Group ID of the cluster",
-                    "name": "affinitygroupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the cluster",
                     "name": "clustername",
+                    "description": "the name of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the cluster",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Account ID of the cluster",
                     "name": "accountid",
+                    "description": "the Account ID of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the dedicated resource",
+                    "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the cluster",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the ID of the dedicated resource",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listNuageUnderlayVlanIpRanges",
+            "description": "enable Nuage underlay on vlan ip range",
+            "since": "4.10",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listVlanIpRanges,dedicatePublicIpRange,createVlanIpRange"
+                },
+                {
+                    "name": "projectid",
+                    "description": "project who will own the VLAN",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN. Default is an \"untagged\" VLAN.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "physical network id of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updatePhysicalNetwork,createPhysicalNetwork"
+                },
+                {
+                    "name": "account",
+                    "description": "the account with which the VLAN IP range is associated. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "network id of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "true if VLAN is of Virtual type, false if Direct",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "underlay",
+                    "description": "true to list only underlay enabled, false if not, empty for all",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID with which the VLAN IP range is associated.  If used with the account parameter, returns all VLAN IP ranges for that account in the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "underlay",
+                    "description": "true if Nuage underlay enabled, false if not",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "createIpForwardingRule",
             "description": "Creates an IP forwarding rule",
             "isasync": true,
-            "name": "createIpForwardingRule",
+            "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule",
             "params": [
                 {
-                    "description": "the public IP address ID of the forwarding rule, already associated via associateIp",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. Has value true by default",
-                    "length": 255,
                     "name": "openfirewall",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. Has value true by default",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the start port for the rule",
-                    "length": 255,
-                    "name": "startport",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "the end port for the rule",
-                    "length": 255,
-                    "name": "endport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the CIDR list to forward traffic from",
-                    "length": 255,
-                    "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the protocol for the rule. Valid values are TCP or UDP.",
-                    "length": 255,
                     "name": "protocol",
+                    "description": "the protocol for the rule. Valid values are TCP or UDP.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "endport",
+                    "description": "the end port for the rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startport",
+                    "description": "the start port for the rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public IP address ID of the forwarding rule, already associated via associateIp",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the CIDR list to forward traffic from",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
             "response": [
                 {
-                    "description": "the starting port of port forwarding rule's private port range",
-                    "name": "privateport",
-                    "type": "string"
-                },
-                {
-                    "description": "the VM ID for the port forwarding rule",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the VM display name for the port forwarding rule",
-                    "name": "virtualmachinedisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the VM name for the port forwarding rule",
-                    "name": "virtualmachinename",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the port forwarding rule",
-                    "name": "ipaddressid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address for the port forwarding rule",
                     "name": "ipaddress",
+                    "description": "the public ip address for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the protocol of the port forwarding rule",
+                    "name": "publicport",
+                    "description": "the starting port of port forwarding rule's public port range",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the VM ID for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinename",
+                    "description": "the VM name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
                     "name": "protocol",
+                    "description": "the protocol of the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
+                    "name": "privateendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
                 },
                 {
-                    "description": "is firewall for display to the regular user",
+                    "name": "virtualmachinedisplayname",
+                    "description": "the VM display name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is firewall for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the port forwarding rule",
-                    "name": "id",
+                    "name": "privateport",
+                    "description": "the starting port of port forwarding rule's private port range",
                     "type": "string"
                 },
                 {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "publicendport",
-                    "type": "string"
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        }
+                    ]
                 },
                 {
-                    "description": "the vm ip address for the port forwarding rule",
-                    "name": "vmguestip",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of port forwarding rule's public port range",
-                    "name": "publicport",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "privateendport",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the guest network the port forwarding rule belongs to",
                     "name": "networkid",
+                    "description": "the id of the guest network the port forwarding rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "publicendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "vmguestip",
+                    "description": "the vm ip address for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the port forwarding rule",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists volume metrics",
-            "isasync": false,
-            "name": "listVolumesMetrics",
-            "params": [
-                {
-                    "description": "the name of the disk volume",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the type of disk volume",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the pod id the disk volume belongs to",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list volumes on specified host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "displayvolume",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list volumes by disk offering",
-                    "length": 255,
-                    "name": "diskofferingid",
-                    "related": "updateDiskOffering,createDiskOffering,listDiskOfferings",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "uuid"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the storage pool, available to ROOT admin only",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "uuid"
-                },
-                {
-                    "description": "the pod id the disk volume belongs to",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the IDs of the volumes, mutually exclusive with id",
-                    "length": 255,
-                    "name": "ids",
-                    "related": "detachVolume,listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "since": "4.9",
-                    "type": "list"
-                },
-                {
-                    "description": "the ID of the storage pool, available to ROOT admin only",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "uuid"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the availability zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,updateVmNicIp,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "detachVolume,listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "disk size in GiB",
-                    "name": "sizegb",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.3"
-        },
-        {
+            "name": "listElastistorInterface",
             "description": "Lists the network Interfaces of elastistor",
             "isasync": false,
-            "name": "listElastistorInterface",
+            "related": "listElastistorVolume",
             "params": [
                 {
-                    "description": "controller id",
-                    "length": 255,
                     "name": "controllerid",
-                    "required": false,
-                    "type": "string"
+                    "description": "controller id",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listElastistorVolume",
             "response": [
                 {
-                    "description": "graceallowed",
-                    "name": "graceallowed",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the volume",
                     "name": "name",
+                    "description": "the name of the volume",
                     "type": "string"
                 },
                 {
-                    "description": "syncronization",
-                    "name": "sync",
-                    "type": "string"
-                },
-                {
-                    "description": "deduplication",
-                    "name": "deduplication",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "compression",
                     "name": "compression",
+                    "description": "compression",
+                    "type": "string"
+                },
+                {
+                    "name": "deduplication",
+                    "description": "deduplication",
+                    "type": "string"
+                },
+                {
+                    "name": "sync",
+                    "description": "syncronization",
+                    "type": "string"
+                },
+                {
+                    "name": "graceallowed",
+                    "description": "graceallowed",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the volume",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listVolumesMetrics",
+            "description": "Lists volume metrics",
+            "since": "4.9.3",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "the type of disk volume",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "storageid",
+                    "description": "the ID of the storage pool, available to ROOT admin only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3",
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "hostid",
+                    "description": "list volumes on specified host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "list volumes by disk offering",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4",
+                    "related": "listDiskOfferings,updateDiskOffering,createDiskOffering"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "the pod id the disk volume belongs to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availability zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster id the disk volume belongs to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,updateCluster"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVmNicIp,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "ids",
+                    "description": "the IDs of the volumes, mutually exclusive with id",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.9",
+                    "related": "listVolumes,detachVolume,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the disk volume",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listVolumes,detachVolume,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                }
+            ],
+            "response": [
+                {
+                    "name": "sizegb",
+                    "description": "disk size in GiB",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listSslCerts",
             "description": "Lists SSL certificates",
             "isasync": false,
-            "name": "listSslCerts",
+            "related": "uploadSslCert",
             "params": [
                 {
-                    "description": "Account ID",
-                    "length": 255,
-                    "name": "accountid",
-                    "related": "disableAccount,listAccounts,markDefaultZoneForAccount,listAccounts,enableAccount,updateAccount,createAccount",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Load balancer rule ID",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Project that owns the SSL certificate",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "ID of SSL certificate",
-                    "length": 255,
                     "name": "certid",
-                    "related": "listSslCerts,uploadSslCert",
+                    "description": "ID of SSL certificate",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "uploadSslCert,listSslCerts"
+                },
+                {
+                    "name": "accountid",
+                    "description": "Account ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateAccount,listAccounts,enableAccount,listAccounts,markDefaultZoneForAccount,disableAccount,createAccount"
+                },
+                {
+                    "name": "projectid",
+                    "description": "Project that owns the SSL certificate",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "Load balancer rule ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
                 }
             ],
-            "related": "uploadSslCert",
             "response": [
                 {
-                    "description": "List of loabalancers this certificate is bound to",
+                    "name": "certificate",
+                    "description": "certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "SSL certificate ID",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
                     "name": "loadbalancerrulelist",
+                    "description": "List of loabalancers this certificate is bound to",
                     "type": "list"
                 },
                 {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "certificate chain",
-                    "name": "certchain",
-                    "type": "string"
-                },
-                {
-                    "description": "certificate",
-                    "name": "certificate",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the certificate",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "SSL certificate ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "account for the certificate",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
+                    "name": "project",
                     "description": "the project name of the certificate",
-                    "name": "project",
                     "type": "string"
                 },
                 {
-                    "description": "certificate fingerprint",
-                    "name": "fingerprint",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "List private gateways",
-            "isasync": false,
-            "name": "listPrivateGateways",
-            "params": [
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list private gateway by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listPrivateGateways,createPrivateGateway",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list gateways by ip address",
-                    "length": 255,
-                    "name": "ipaddress",
-                    "required": false,
+                    "name": "name",
+                    "description": "name",
                     "type": "string"
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list gateways by vlan",
-                    "length": 255,
-                    "name": "vlan",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list gateways by state",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
+                    "description": "account for the certificate",
                     "type": "string"
                 },
                 {
-                    "description": "list gateways by vpc",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "createPrivateGateway",
-            "response": [
-                {
-                    "description": "the private gateway's ip address",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the private gateway",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the private gateway",
                     "name": "domain",
+                    "description": "the domain name of the network owner",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the domain associated with the private gateway",
-                    "name": "domainid",
+                    "name": "certchain",
+                    "description": "certificate chain",
                     "type": "string"
                 },
                 {
-                    "description": "zone id of the private gateway",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network implementation uri for the private gateway",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the private gateway",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the private gateway belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "Souce Nat enable status",
-                    "name": "sourcenatsupported",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the private gateway's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the private gateway",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the private gateaway belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the private gateway",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "ACL Id set for private gateway",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the gateway, can be Creating, Ready, Deleting",
-                    "name": "state",
+                    "name": "fingerprint",
+                    "description": "certificate fingerprint",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateVmNicIp",
             "description": "Update the default Ip of a VM Nic",
             "isasync": true,
-            "name": "updateVmNicIp",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "the ID of the nic to which you want to assign private IP",
-                    "length": 255,
                     "name": "nicid",
-                    "related": "listNics",
+                    "description": "the ID of the nic to which you want to assign private IP",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listNics"
                 },
                 {
-                    "description": "Secondary IP Address",
-                    "length": 255,
                     "name": "ipaddress",
-                    "required": false,
-                    "type": "string"
+                    "description": "Secondary IP Address",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
                     "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
                     "name": "details",
+                    "description": "Vm details in key/value pairs.",
                     "type": "map"
                 },
                 {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
                 },
                 {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
                     "type": "integer"
                 },
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
+                    "name": "publicip",
                     "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
+                    "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the template for the virtual machine",
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
                     "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the project name of the vm",
-                    "name": "project",
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates load balancer stickiness policy",
-            "isasync": true,
-            "name": "updateLBStickinessPolicy",
+            "name": "listPrivateGateways",
+            "description": "List private gateways",
+            "isasync": false,
+            "related": "createPrivateGateway",
             "params": [
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "customid",
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
                 },
                 {
-                    "description": "id of lb stickiness policy",
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
                     "name": "id",
-                    "related": "listLBStickinessPolicies,createLBStickinessPolicy,updateLBStickinessPolicy",
-                    "required": true,
-                    "type": "uuid"
+                    "description": "list private gateway by id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPrivateGateway,listPrivateGateways"
                 },
                 {
-                    "description": "an optional field, whether to the display the policy to the end user or not",
+                    "name": "vpcid",
+                    "description": "list gateways by vpc",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "fordisplay",
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "related": "createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "vlan",
+                    "description": "list gateways by vlan",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "list gateways by ip address",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "list gateways by state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listLBStickinessPolicies,createLBStickinessPolicy",
             "response": [
                 {
-                    "description": "the state of the policy",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the Stickiness policy",
                     "name": "account",
+                    "description": "the account associated with the private gateway",
                     "type": "string"
                 },
                 {
-                    "description": "the list of stickinesspolicies",
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id set for private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the private gateway belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the private gateaway belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "State of the gateway, can be Creating, Ready, Deleting",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the network implementation uri for the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the private gateway's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "sourcenatsupported",
+                    "description": "Souce Nat enable status",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the private gateway's ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the private gateway",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateLBStickinessPolicy",
+            "description": "Updates load balancer stickiness policy",
+            "since": "4.4",
+            "isasync": true,
+            "related": "createLBStickinessPolicy,listLBStickinessPolicies",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "id of lb stickiness policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createLBStickinessPolicy,listLBStickinessPolicies,updateLBStickinessPolicy"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the policy to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "lbruleid",
+                    "description": "the LB rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the Stickiness policy belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the Stickiness policy",
+                    "type": "string"
+                },
+                {
                     "name": "stickinesspolicy",
+                    "description": "the list of stickinesspolicies",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the LB Stickiness policy ID",
-                            "name": "id",
-                            "type": "string"
+                            "name": "fordisplay",
+                            "description": "is policy for display to the regular user",
+                            "type": "boolean"
                         },
                         {
-                            "description": "the description of the Stickiness policy",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the Stickiness policy",
                             "name": "name",
+                            "description": "the name of the Stickiness policy",
                             "type": "string"
                         },
                         {
-                            "description": "the params of the policy",
+                            "name": "methodname",
+                            "description": "the method name of the Stickiness policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the policy",
+                            "type": "string"
+                        },
+                        {
                             "name": "params",
+                            "description": "the params of the policy",
                             "type": "map"
                         },
                         {
-                            "description": "the method name of the Stickiness policy",
-                            "name": "methodname",
+                            "name": "description",
+                            "description": "the description of the Stickiness policy",
                             "type": "string"
                         },
                         {
-                            "description": "the state of the policy",
-                            "name": "state",
+                            "name": "id",
+                            "description": "the LB Stickiness policy ID",
                             "type": "string"
-                        },
-                        {
-                            "description": "is policy for display to the regular user",
-                            "name": "fordisplay",
-                            "type": "boolean"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the LB rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the Stickiness policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the Stickiness policy",
                     "name": "domainid",
+                    "description": "the domain ID of the Stickiness policy",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the Stickiness policy",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the Stickiness policy",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the zone the Stickiness policy belongs to",
-                    "name": "zoneid",
+                    "name": "state",
+                    "description": "the state of the policy",
                     "type": "string"
                 }
-            ],
-            "since": "4.4"
+            ]
         },
         {
+            "name": "listPods",
             "description": "Lists all Pods.",
             "isasync": false,
-            "name": "listPods",
+            "related": "createManagementNetworkIpRange,updatePod",
             "params": [
                 {
-                    "description": "list Pods by name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list pods by allocation state",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list Pods by ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listPods,updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list Pods by Zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "flag to display the capacity of the pods",
-                    "length": 255,
-                    "name": "showcapacities",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "list Pods by Zone ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "showcapacities",
+                    "description": "flag to display the capacity of the pods",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "list pods by allocation state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list Pods by ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPods,createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "name",
+                    "description": "list Pods by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updatePod",
             "response": [
                 {
-                    "description": "the Zone name of the Pod",
-                    "name": "zonename",
+                    "name": "name",
+                    "description": "the name of the Pod",
                     "type": "string"
                 },
                 {
-                    "description": "the capacity of the Pod",
-                    "name": "capacity",
-                    "response": [
-                        {
-                            "description": "the Pod name",
-                            "name": "podname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone name",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Cluster name",
-                            "name": "clustername",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity type",
-                            "name": "type",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the percentage of capacity currently in use",
-                            "name": "percentused",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone ID",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity currently in use",
-                            "name": "capacityused",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Pod ID",
-                            "name": "podid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
-                            "type": "long"
-                        }
-                    ],
+                    "name": "vlanid",
+                    "description": "indicates Vlan ID for the range",
                     "type": "list"
                 },
                 {
-                    "description": "the gateway of the Pod",
+                    "name": "zonename",
+                    "description": "the Zone name of the Pod",
+                    "type": "string"
+                },
+                {
                     "name": "gateway",
+                    "description": "the gateway of the Pod",
                     "type": "string"
                 },
                 {
-                    "description": "the ending IP for the Pod",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "the allocation state of the Pod",
-                    "name": "allocationstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Pod",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting IP for the Pod",
                     "name": "startip",
-                    "type": "string"
+                    "description": "the starting IP for the Pod",
+                    "type": "list"
                 },
                 {
-                    "description": "the name of the Pod",
-                    "name": "name",
-                    "type": "string"
+                    "name": "endip",
+                    "description": "the ending IP for the Pod",
+                    "type": "list"
                 },
                 {
-                    "description": "the Zone ID of the Pod",
                     "name": "zoneid",
+                    "description": "the Zone ID of the Pod",
                     "type": "string"
                 },
                 {
-                    "description": "the netmask of the Pod",
-                    "name": "netmask",
+                    "name": "forsystemvms",
+                    "description": "indicates if range is dedicated for CPVM and SSVM",
+                    "type": "list"
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "the allocation state of the Pod",
                     "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "capacity",
+                    "description": "the capacity of the Pod",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podname",
+                            "description": "the Pod name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
+                            "type": "long"
+                        },
+                        {
+                            "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the capacity type",
+                            "type": "short"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        }
+                    ]
                 }
             ]
         },
         {
+            "name": "startInternalLoadBalancerVM",
             "description": "Starts an existing internal lb vm.",
             "isasync": true,
-            "name": "startInternalLoadBalancerVM",
+            "related": "changeServiceForRouter,stopInternalLoadBalancerVM,listRouters,stopNetScalerVpx,destroyRouter,rebootRouter,listInternalLoadBalancerVMs",
             "params": [
                 {
-                    "description": "the ID of the internal lb vm",
-                    "length": 255,
                     "name": "id",
-                    "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,rebootRouter,destroyRouter,startInternalLoadBalancerVM,listRouters",
+                    "description": "the ID of the internal lb vm",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listRouters,stopNetScalerVpx,destroyRouter,rebootRouter,listInternalLoadBalancerVMs"
                 }
             ],
-            "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,rebootRouter,destroyRouter,listRouters",
             "response": [
                 {
-                    "description": "true if the router template requires upgrader",
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the corresponding guest network",
-                    "name": "guestnetworkid",
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
                     "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the router",
                     "name": "state",
+                    "description": "the state of the router",
                     "type": "state"
                 },
                 {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
                     "name": "scriptsversion",
+                    "description": "the version of scripts",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the router was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding link local network",
-                    "name": "linklocalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of template",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the router",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the router",
                     "name": "zonename",
+                    "description": "the Zone name for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
+                    "name": "account",
+                    "description": "the account associated with the router",
                     "type": "string"
                 },
                 {
-                    "description": "the second IPv6 DNS for the router",
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
                     "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the router",
-                    "name": "name",
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with the router",
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
                     "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
                             "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of IPv6 network",
                             "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
                             "type": "list"
                         },
                         {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
                             "name": "id",
+                            "description": "the ID of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the nic",
-                            "name": "type",
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
                             "type": "string"
                         },
                         {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
                             "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
                     "type": "string"
                 },
                 {
-                    "description": "the host ID for the router",
-                    "name": "hostid",
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
                     "type": "string"
                 },
                 {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
+                    "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Updates a disk offering.",
-            "isasync": false,
-            "name": "updateDiskOffering",
-            "params": [
-                {
-                    "description": "an optional field, whether to display the offering to the end user or not.",
-                    "length": 255,
-                    "name": "displayoffering",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "updates name of the disk offering with this value",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the disk offering",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateDiskOffering,createDiskOffering,listDiskOfferings",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "sort key of the disk offering, integer",
-                    "length": 255,
-                    "name": "sortkey",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "updates alternate display text of the disk offering with this value",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "createDiskOffering,listDiskOfferings",
-            "response": [
-                {
-                    "description": "the tags for the disk offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "the min iops of the disk offering",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "true if disk offering uses custom iops, false otherwise",
-                    "name": "iscustomizediops",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the size of the disk offering in GB",
-                    "name": "disksize",
-                    "type": "long"
-                },
-                {
-                    "description": "the date this disk offering was created",
                     "name": "created",
+                    "description": "the date and time the router was created",
                     "type": "date"
                 },
                 {
-                    "description": "the max iops of the disk offering",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable.",
-                    "name": "domainid",
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the cache mode to use for this disk offering. none, writeback or writethrough",
-                    "name": "cacheMode",
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
                     "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateDiskOffering",
+            "description": "Updates a disk offering.",
+            "isasync": false,
+            "related": "listDiskOfferings,createDiskOffering",
+            "params": [
+                {
+                    "name": "displayoffering",
+                    "description": "an optional field, whether to display the offering to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the storage type for this disk offering",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the disk offering.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if disk offering uses custom size, false otherwise",
-                    "name": "iscustomized",
-                    "type": "boolean"
-                },
-                {
-                    "description": "bytes read rate of the disk offering",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "unique ID of the disk offering",
                     "name": "id",
+                    "description": "ID of the disk offering",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDiskOfferings,updateDiskOffering,createDiskOffering"
+                },
+                {
+                    "name": "name",
+                    "description": "updates name of the disk offering with this value",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sortkey",
+                    "description": "sort key of the disk offering, integer",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "updates alternate display text of the disk offering with this value",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "unique ID of the disk offering",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name this disk offering belongs to. Ignore this information as it is not currently applicable.",
-                    "name": "domain",
+                    "name": "cacheMode",
+                    "description": "the cache mode to use for this disk offering. none, writeback or writethrough",
                     "type": "string"
                 },
                 {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
                     "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
                     "type": "integer"
                 },
                 {
-                    "description": "io requests read rate of the disk offering",
-                    "name": "diskIopsReadRate",
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk offering",
                     "type": "long"
                 },
                 {
-                    "description": "io requests write rate of the disk offering",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
+                    "name": "name",
+                    "description": "the name of the disk offering",
+                    "type": "string"
                 },
                 {
-                    "description": "bytes write rate of the disk offering",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "whether to display the offering to the end user or not.",
                     "name": "displayoffering",
+                    "description": "whether to display the offering to the end user or not.",
                     "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the disk offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "the storage type for this disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "disksize",
+                    "description": "the size of the disk offering in GB",
+                    "type": "long"
+                },
+                {
+                    "name": "iscustomizediops",
+                    "description": "true if disk offering uses custom iops, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable.",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this disk offering was created",
+                    "type": "date"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "the max iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name this disk offering belongs to. Ignore this information as it is not currently applicable.",
+                    "type": "string"
+                },
+                {
+                    "name": "iscustomized",
+                    "description": "true if disk offering uses custom size, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "miniops",
+                    "description": "the min iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk offering",
+                    "type": "long"
                 }
             ]
         },
         {
-            "description": " delete a SRX firewall device",
+            "name": "disableNuageUnderlayVlanIpRange",
+            "description": "disable Nuage underlay on vlan ip range",
+            "since": "4.10",
             "isasync": true,
-            "name": "deleteSrxFirewall",
             "params": [
                 {
-                    "description": "srx firewall device ID",
+                    "name": "id",
+                    "description": "VLAN IP Range ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "fwdeviceid",
-                    "related": "configureSrxFirewall",
                     "required": true,
-                    "type": "uuid"
+                    "related": "listVlanIpRanges,dedicatePublicIpRange,createVlanIpRange"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Adds account to a project",
-            "isasync": true,
-            "name": "addAccountToProject",
-            "params": [
-                {
-                    "description": "ID of the project to add the account to",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "email to which invitation to the project is going to be sent",
-                    "length": 255,
-                    "name": "email",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "name of the account to be added to the project",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
+            "name": "listSnapshots",
             "description": "Lists all available snapshots for the account.",
             "isasync": false,
-            "name": "listSnapshots",
+            "related": "createSnapshotFromVMSnapshot,createSnapshot,revertSnapshot",
             "params": [
                 {
-                    "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY.",
-                    "length": 255,
-                    "name": "intervaltype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists snapshot by snapshot ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listSnapshots,createSnapshot,revertSnapshot",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "lists snapshot by snapshot name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
-                    "name": "volumeid",
-                    "related": "detachVolume,listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the IDs of the snapshots, mutually exclusive with id",
-                    "length": 255,
                     "name": "ids",
-                    "related": "listSnapshots,createSnapshot,revertSnapshot",
+                    "description": "the IDs of the snapshots, mutually exclusive with id",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
                     "since": "4.9",
-                    "type": "list"
+                    "related": "listSnapshots,createSnapshotFromVMSnapshot,createSnapshot,revertSnapshot"
                 },
                 {
-                    "description": "valid values are MANUAL or RECURRING.",
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "snapshottype",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "list snapshots by zone id",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "lists snapshot by snapshot ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listSnapshots,createSnapshotFromVMSnapshot,createSnapshot,revertSnapshot"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "intervaltype",
+                    "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "volumeid",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listVolumes,detachVolume,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "name",
+                    "description": "lists snapshot by snapshot name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "snapshottype",
+                    "description": "valid values are MANUAL or RECURRING.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "list snapshots by zone id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
-            "related": "createSnapshot,revertSnapshot",
             "response": [
                 {
-                    "description": "ID of the snapshot",
-                    "name": "id",
+                    "name": "account",
+                    "description": "the account associated with the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "valid types are hourly, daily, weekly, monthy, template, and none.",
-                    "name": "intervaltype",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the snapshot",
-                    "name": "snapshottype",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "volumename",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the snapshot",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the snapshot's account",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the snapshot",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "physical size of backedup snapshot on image store",
-                    "name": "physicalsize",
-                    "type": "long"
-                },
-                {
-                    "description": "  the date the snapshot was created",
                     "name": "created",
+                    "description": "  the date the snapshot was created",
                     "type": "date"
                 },
                 {
-                    "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage",
+                    "name": "project",
+                    "description": "the project name of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "display name of the os on volume",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetype",
+                    "description": "type of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "locationtype",
+                    "description": "valid location types are primary and secondary.",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "id of the os on volume",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with snapshot",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "volumeid",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "revertable",
+                    "description": "indicates whether the underlying storage supports reverting the volume to this snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the snapshot's account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottype",
+                    "description": "the type of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "virtual size of backedup snapshot on image store",
+                    "type": "long"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage",
                     "type": "state"
                 },
                 {
-                    "description": "the domain ID of the snapshot's account",
+                    "name": "physicalsize",
+                    "description": "physical size of backedup snapshot on image store",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the snapshot",
+                    "type": "string"
+                },
+                {
                     "name": "domainid",
+                    "description": "the domain ID of the snapshot's account",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the snapshot",
-                    "name": "project",
+                    "name": "volumename",
+                    "description": "name of the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with snapshot",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "type of the disk volume",
-                    "name": "volumetype",
+                    "name": "intervaltype",
+                    "description": "valid types are hourly, daily, weekly, monthy, template, and none.",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the snapshot",
+                    "name": "zoneid",
+                    "description": "id of the availability zone",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addAccountToProject",
+            "description": "Adds account to a project",
+            "since": "3.0.0",
+            "isasync": true,
+            "params": [
+                {
                     "name": "account",
+                    "description": "name of the account to be added to the project",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "email",
+                    "description": "email to which invitation to the project is going to be sent",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "ID of the project to add the account to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "ID of the disk volume",
-                    "name": "volumeid",
-                    "type": "string"
-                },
-                {
-                    "description": "indicates whether the underlying storage supports reverting the volume to this snapshot",
-                    "name": "revertable",
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "resetVpnConnection",
             "description": "Reset site to site vpn connection",
             "isasync": true,
-            "name": "resetVpnConnection",
+            "related": "createVpnConnection,updateVpnConnection,listVpnConnections",
             "params": [
                 {
-                    "description": "an optional domainId for connection. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional account for connection. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "id of vpn connection",
-                    "length": 255,
                     "name": "id",
-                    "related": "createVpnConnection,resetVpnConnection,listVpnConnections,updateVpnConnection",
+                    "description": "id of vpn connection",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createVpnConnection,resetVpnConnection,updateVpnConnection,listVpnConnections"
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for connection. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account for connection. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createVpnConnection,listVpnConnections,updateVpnConnection",
             "response": [
                 {
-                    "description": "IKE policy of the customer gateway",
-                    "name": "ikepolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "public ip address id of the customer gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "ESP policy of the customer gateway",
                     "name": "esppolicy",
+                    "description": "ESP policy of the customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "Lifetime of ESP SA of customer gateway",
-                    "name": "esplifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "passive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Lifetime of IKE SA of customer gateway",
-                    "name": "ikelifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "the customer gateway ID",
-                    "name": "s2scustomergatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "is connection for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "s2svpngatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "if DPD is enabled for customer gateway",
-                    "name": "dpd",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the connection ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
-                    "name": "forceencap",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id",
                     "name": "projectid",
+                    "description": "the project id",
                     "type": "string"
                 },
                 {
-                    "description": "guest cidr list of the customer gateway",
-                    "name": "cidrlist",
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "IPsec Preshared-Key of the customer gateway",
-                    "name": "ipsecpsk",
+                    "name": "ikepolicy",
+                    "description": "IKE policy of the customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "the owner",
+                    "name": "state",
+                    "description": "State of vpn connection",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
                     "name": "account",
+                    "description": "the owner",
                     "type": "string"
                 },
                 {
-                    "description": "the public IP address",
-                    "name": "publicip",
+                    "name": "forceencap",
+                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the connection ID",
                     "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is connection for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "s2scustomergatewayid",
+                    "description": "the customer gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "s2svpngatewayid",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "ipsecpsk",
+                    "description": "IPsec Preshared-Key of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "dpd",
+                    "description": "if DPD is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "ikelifetime",
+                    "description": "Lifetime of IKE SA of customer gateway",
+                    "type": "long"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "esplifetime",
+                    "description": "Lifetime of ESP SA of customer gateway",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
+                    "name": "passive",
+                    "description": "State of vpn connection",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "deleteSSHKeyPair",
             "description": "Deletes a keypair by name",
             "isasync": false,
-            "name": "deleteSSHKeyPair",
             "params": [
                 {
-                    "description": "the account associated with the keypair. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the keypair",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the project associated with keypair",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Name of the keypair",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "Name of the keypair",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project associated with keypair",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the keypair. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the keypair",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "searchLdap",
+            "description": "Searches LDAP based on the username attribute",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "listLdapUsers",
+            "params": [
+                {
+                    "name": "query",
+                    "description": "query to search using",
+                    "type": "string",
+                    "length": 255,
+                    "required": true,
+                    "related": "searchLdap,listLdapUsers"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "The user's domain",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "The user's username",
+                    "type": "string"
+                },
+                {
+                    "name": "lastname",
+                    "description": "The user's lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "The user's email",
+                    "type": "string"
+                },
+                {
+                    "name": "principal",
+                    "description": "The user's principle",
+                    "type": "string"
+                },
+                {
+                    "name": "firstname",
+                    "description": "The user's firstname",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createAutoScaleVmGroup",
             "description": "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.",
             "isasync": true,
-            "name": "createAutoScaleVmGroup",
+            "related": "updateAutoScaleVmGroup,enableAutoScaleVmGroup,disableAutoScaleVmGroup,listAutoScaleVmGroups",
             "params": [
                 {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
-                    "length": 255,
-                    "name": "maxmembers",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "list of scaleup autoscale policies",
-                    "length": 255,
-                    "name": "scaleuppolicyids",
-                    "related": "updateAutoScalePolicy,listAutoScalePolicies",
-                    "required": true,
-                    "type": "list"
-                },
-                {
-                    "description": "list of scaledown autoscale policies",
-                    "length": 255,
-                    "name": "scaledownpolicyids",
-                    "related": "updateAutoScalePolicy,listAutoScalePolicies",
-                    "required": true,
-                    "type": "list"
-                },
-                {
+                    "name": "fordisplay",
                     "description": "an optional field, whether to the display the group to the end user or not",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "fordisplay",
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the frequency at which the conditions have to be evaluated",
-                    "length": 255,
                     "name": "interval",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the autoscale profile that contains information about the vms in the vm group.",
+                    "description": "the frequency at which the conditions have to be evaluated",
+                    "type": "integer",
                     "length": 255,
-                    "name": "vmprofileid",
-                    "related": "updateAutoScaleVmProfile,listAutoScaleVmProfiles,createAutoScaleVmProfile",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
-                    "length": 255,
-                    "name": "minmembers",
-                    "required": true,
-                    "type": "integer"
-                }
-            ],
-            "related": "enableAutoScaleVmGroup,disableAutoScaleVmGroup,updateAutoScaleVmGroup,listAutoScaleVmGroups",
-            "response": [
-                {
-                    "description": "list of scaleup autoscale policies",
-                    "name": "scaleuppolicies",
-                    "type": "list"
-                },
-                {
-                    "description": "the domain name of the vm profile",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
-                    "name": "minmembers",
-                    "type": "int"
-                },
-                {
-                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
                     "name": "maxmembers",
-                    "type": "int"
+                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the frequency at which the conditions have to be evaluated",
-                    "name": "interval",
-                    "type": "int"
-                },
-                {
+                    "name": "scaledownpolicyids",
                     "description": "list of scaledown autoscale policies",
-                    "name": "scaledownpolicies",
+                    "type": "list",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateAutoScalePolicy,listAutoScalePolicies"
+                },
+                {
+                    "name": "vmprofileid",
+                    "description": "the autoscale profile that contains information about the vms in the vm group.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listAutoScaleVmProfiles,createAutoScaleVmProfile,updateAutoScaleVmProfile"
+                },
+                {
+                    "name": "scaleuppolicyids",
+                    "description": "list of scaleup autoscale policies",
+                    "type": "list",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateAutoScalePolicy,listAutoScalePolicies"
+                },
+                {
+                    "name": "minmembers",
+                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                }
+            ],
+            "response": [
+                {
+                    "name": "scaleuppolicies",
+                    "description": "list of scaleup autoscale policies",
                     "type": "list"
                 },
                 {
-                    "description": "the autoscale profile that contains information about the vms in the vm group.",
-                    "name": "vmprofileid",
-                    "type": "string"
-                },
-                {
-                    "description": "the current state of the AutoScale Vm Group",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm profile",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale vm group ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id vm profile",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "is group for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is group for display to the regular user",
                     "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Searches LDAP based on the username attribute",
-            "isasync": false,
-            "name": "searchLdap",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "query to search using",
-                    "length": 255,
-                    "name": "query",
-                    "related": "searchLdap,listLdapUsers",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "listLdapUsers",
-            "response": [
-                {
-                    "description": "The user's domain",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's firstname",
-                    "name": "firstname",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's email",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "The user's principle",
-                    "name": "principal",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Deletes a load balancer rule.",
-            "isasync": true,
-            "name": "deleteLoadBalancerRule",
-            "params": [
-                {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "description": "the autoscale vm group ID",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "maxmembers",
+                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
+                    "type": "int"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "vmprofileid",
+                    "description": "the autoscale profile that contains information about the vms in the vm group.",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the current state of the AutoScale Vm Group",
+                    "type": "string"
+                },
+                {
+                    "name": "scaledownpolicies",
+                    "description": "list of scaledown autoscale policies",
+                    "type": "list"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "minmembers",
+                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
+                    "type": "int"
+                },
+                {
+                    "name": "interval",
+                    "description": "the frequency at which the conditions have to be evaluated",
+                    "type": "int"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the vm profile",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "addBaremetalPxePingServer",
             "description": "add a baremetal ping pxe server",
             "isasync": true,
-            "name": "addBaremetalPxePingServer",
+            "related": "",
             "params": [
                 {
-                    "description": "Tftp root directory of PXE server",
-                    "length": 255,
-                    "name": "tftpdir",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Password of PING storage server",
-                    "length": 255,
-                    "name": "pingcifspassword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Root directory on PING storage server",
-                    "length": 255,
-                    "name": "pingdir",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Username of PING storage server",
-                    "length": 255,
-                    "name": "pingcifsusername",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Pod Id",
-                    "length": 255,
                     "name": "podid",
-                    "related": "updatePod",
+                    "description": "Pod Id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createManagementNetworkIpRange,updatePod"
                 },
                 {
-                    "description": "type of pxe device",
-                    "length": 255,
-                    "name": "pxeservertype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to reach external pxe device",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to reach external pxe device",
-                    "length": 255,
                     "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "description": "Credentials to reach external pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "URL of the external pxe device",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "PING storage server ip",
-                    "length": 255,
                     "name": "pingstorageserverip",
+                    "description": "PING storage server ip",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "tftpdir",
+                    "description": "Tftp root directory of PXE server",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "pingdir",
+                    "description": "Root directory on PING storage server",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
+                    "related": "updatePhysicalNetwork,createPhysicalNetwork"
+                },
+                {
+                    "name": "url",
+                    "description": "URL of the external pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "pingcifsusername",
+                    "description": "Username of PING storage server",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "Credentials to reach external pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "pingcifspassword",
+                    "description": "Password of PING storage server",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pxeservertype",
+                    "description": "type of pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Root directory on PING storage server",
-                    "name": "pingdir",
-                    "type": "string"
-                },
-                {
-                    "description": "Tftp root directory of PXE server",
                     "name": "tftpdir",
+                    "description": "Tftp root directory of PXE server",
                     "type": "string"
                 },
                 {
-                    "description": "PING storage server ip",
+                    "name": "pingdir",
+                    "description": "Root directory on PING storage server",
+                    "type": "string"
+                },
+                {
                     "name": "pingstorageserverip",
+                    "description": "PING storage server ip",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteLoadBalancerRule",
+            "description": "Deletes a load balancer rule.",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listPortableIpRanges",
             "description": "list portable IP ranges",
             "isasync": false,
-            "name": "listPortableIpRanges",
+            "related": "createPortableIpRange",
             "params": [
                 {
-                    "description": "Id of a Region",
+                    "name": "id",
+                    "description": "Id of the portable ip range",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "regionid",
                     "required": false,
-                    "type": "integer"
+                    "related": "createPortableIpRange,listPortableIpRanges"
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "page",
-                    "required": false,
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "regionid",
+                    "description": "Id of a Region",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "regionid",
+                    "description": "Region Id in which portable ip range is provisioned",
                     "type": "integer"
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
+                    "name": "gateway",
+                    "description": "the gateway of the VLAN IP range",
                     "type": "string"
                 },
                 {
-                    "description": "Id of the portable ip range",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listPortableIpRanges,createPortableIpRange",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "createPortableIpRange",
-            "response": [
+                    "name": "startip",
+                    "description": "the start ip of the portable IP range",
+                    "type": "string"
+                },
                 {
-                    "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule",
+                    "name": "endip",
+                    "description": "the end ip of the portable IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "portable IP range ID",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the VLAN IP range",
+                    "type": "string"
+                },
+                {
                     "name": "portableipaddress",
+                    "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "Region Id in which global load balancer is created",
+                            "name": "domainid",
+                            "description": "the domain ID the portable IP address is associated with",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "public IP address",
+                            "type": "string"
+                        },
+                        {
                             "name": "regionid",
+                            "description": "Region Id in which global load balancer is created",
                             "type": "integer"
                         },
                         {
-                            "description": "the physical network this belongs to",
                             "name": "physicalnetworkid",
+                            "description": "the physical network this belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the Network where ip belongs to",
+                            "name": "zoneid",
+                            "description": "the ID of the zone the public IP address belongs to",
+                            "type": "string"
+                        },
+                        {
                             "name": "networkid",
+                            "description": "the ID of the Network where ip belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "date the portal IP address was acquired",
+                            "name": "accountid",
+                            "description": "the account ID the portable IP address is associated with",
+                            "type": "string"
+                        },
+                        {
                             "name": "allocated",
+                            "description": "date the portal IP address was acquired",
                             "type": "date"
                         },
                         {
-                            "description": "the ID of the zone the public IP address belongs to",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID the portable IP address is associated with",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "public IP address",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "VPC the ip belongs to",
                             "name": "vpcid",
+                            "description": "VPC the ip belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "the account ID the portable IP address is associated with",
-                            "name": "accountid",
+                            "name": "state",
+                            "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
-                },
+                    ]
+                }
+            ]
+        },
+        {
+            "name": "getVirtualMachineUserData",
+            "description": "Returns user data associated with the VM",
+            "since": "4.4",
+            "isasync": false,
+            "related": "",
+            "params": [
                 {
-                    "description": "portable IP range ID",
-                    "name": "id",
+                    "name": "virtualmachineid",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                }
+            ],
+            "response": [
+                {
+                    "name": "userdata",
+                    "description": "Base 64 encoded VM user data",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway of the VLAN IP range",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID or VID of the VLAN.",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ip of the portable IP range",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ip of the portable IP range",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "Region Id in which portable ip range is provisioned",
-                    "name": "regionid",
-                    "type": "integer"
-                },
-                {
-                    "description": "the netmask of the VLAN IP range",
-                    "name": "netmask",
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Returns user data associated with the VM",
-            "isasync": false,
-            "name": "getVirtualMachineUserData",
-            "params": [
-                {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "Base 64 encoded VM user data",
-                    "name": "userdata",
-                    "type": "string"
-                }
-            ],
-            "since": "4.4"
-        },
-        {
+            "name": "listConfigurations",
             "description": "Lists all configurations.",
             "isasync": false,
-            "name": "listConfigurations",
+            "related": "updateConfiguration",
             "params": [
                 {
-                    "description": "the ID of the Account to update the parameter value for corresponding account",
-                    "length": 255,
                     "name": "accountid",
-                    "related": "disableAccount,listAccounts,markDefaultZoneForAccount,listAccounts,enableAccount,updateAccount,createAccount",
+                    "description": "the ID of the Account to update the parameter value for corresponding account",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "updateAccount,listAccounts,enableAccount,listAccounts,markDefaultZoneForAccount,disableAccount,createAccount"
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "lists configurations by category",
-                    "length": 255,
-                    "name": "category",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the Cluster to update the parameter value for corresponding cluster",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster,updateCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "lists configuration by name",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "lists configuration by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ID of the Zone to update the parameter value for corresponding zone",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the ID of the Zone to update the parameter value for corresponding zone",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "imagestoreuuid",
+                    "description": "the ID of the Image Store to update the parameter value for corresponding image store",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listSwifts,updateCloudToUseObjectStore,addImageStore,addImageStoreS3,addSecondaryStorage,listImageStores"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the Cluster to update the parameter value for corresponding cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,updateCluster"
+                },
+                {
+                    "name": "storageid",
+                    "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "category",
+                    "description": "lists configurations by category",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the Domain to update the parameter value for corresponding domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 }
             ],
-            "related": "updateConfiguration",
             "response": [
                 {
-                    "description": "the description of the configuration",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the configuration",
                     "name": "name",
+                    "description": "the name of the configuration",
                     "type": "string"
                 },
                 {
-                    "description": "the value of the configuration",
-                    "name": "value",
-                    "type": "string"
-                },
-                {
-                    "description": "the category of the configuration",
                     "name": "category",
+                    "description": "the category of the configuration",
                     "type": "string"
                 },
                 {
+                    "name": "description",
+                    "description": "the description of the configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "value",
                     "description": "the value of the configuration",
-                    "name": "id",
-                    "type": "long"
+                    "type": "string"
                 },
                 {
-                    "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated",
                     "name": "scope",
+                    "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated",
                     "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the value of the configuration",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "disableStaticNat",
             "description": "Disables static rule for given IP address",
             "isasync": true,
-            "name": "disableStaticNat",
             "params": [
                 {
-                    "description": "the public IP address ID for which static NAT feature is being disabled",
-                    "length": 255,
                     "name": "ipaddressid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
+                    "description": "the public IP address ID for which static NAT feature is being disabled",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "addIpToNic",
             "description": "Assigns secondary IP to NIC",
             "isasync": true,
-            "name": "addIpToNic",
+            "related": "",
             "params": [
                 {
-                    "description": "Secondary IP Address",
+                    "name": "nicid",
+                    "description": "the ID of the nic to which you want to assign private IP",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "ipaddress",
-                    "required": false,
-                    "type": "string"
+                    "required": true,
+                    "related": "listNics"
                 },
                 {
-                    "description": "the ID of the nic to which you want to assign private IP",
+                    "name": "ipaddress",
+                    "description": "Secondary IP Address",
+                    "type": "string",
                     "length": 255,
-                    "name": "nicid",
-                    "related": "listNics",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Secondary IP address",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the secondary private IP addr",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the network",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the nic",
                     "name": "nicid",
+                    "description": "the ID of the nic",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the vm",
+                    "name": "ipaddress",
+                    "description": "Secondary IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the secondary private IP addr",
+                    "type": "string"
+                },
+                {
                     "name": "virtualmachineid",
+                    "description": "the ID of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "secondaryip",
+                    "description": "the list of Secondary ipv4 addr of nic",
+                    "type": "list"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the ID of the network",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "stopNetScalerVpx",
+            "description": "Stops a NetScalervm.",
+            "isasync": true,
+            "related": "changeServiceForRouter,stopInternalLoadBalancerVM,listRouters,destroyRouter,rebootRouter,listInternalLoadBalancerVMs",
+            "params": [
+                {
+                    "name": "forced",
+                    "description": "Force stop the VM. The caller knows the VM is stopped.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the NetScaler vm",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "changeServiceForRouter,stopInternalLoadBalancerVM,listRouters,stopNetScalerVpx,destroyRouter,rebootRouter,listInternalLoadBalancerVMs"
+                }
+            ],
+            "response": [
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the router was created",
+                    "type": "date"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the router",
+                    "type": "state"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        }
+                    ]
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteUcsManager",
             "description": "Delete a Ucs manager",
             "isasync": false,
-            "name": "deleteUcsManager",
             "params": [
                 {
-                    "description": "ucs manager id",
-                    "length": 255,
                     "name": "ucsmanagerid",
-                    "related": "addUcsManager,listUcsManagers",
+                    "description": "ucs manager id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listUcsManagers,addUcsManager"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteInstanceGroup",
             "description": "Deletes a vm group",
             "isasync": false,
-            "name": "deleteInstanceGroup",
             "params": [
                 {
-                    "description": "the ID of the instance group",
-                    "length": 255,
                     "name": "id",
-                    "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup",
+                    "description": "the ID of the instance group",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listInstanceGroups,createInstanceGroup,updateInstanceGroup"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "deleteHost",
             "description": "Deletes a host.",
             "isasync": false,
-            "name": "deleteHost",
             "params": [
                 {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Force destroy local storage on this host. All VMs created on this local storage will be destroyed",
-                    "length": 255,
                     "name": "forcedestroylocalstorage",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "Force destroy local storage on this host. All VMs created on this local storage will be destroyed",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Force delete the host. All HA enabled vms running on the host will be put to HA; HA disabled ones will be stopped",
-                    "length": 255,
                     "name": "forced",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "Force delete the host. All HA enabled vms running on the host will be put to HA; HA disabled ones will be stopped",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listCapabilities",
             "description": "Lists capabilities",
             "isasync": false,
-            "name": "listCapabilities",
+            "related": "",
             "params": [
 
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "version of the cloud stack",
-                    "name": "cloudstackversion",
-                    "type": "string"
-                },
-                {
-                    "description": "Max allowed number of api requests within the specified interval",
-                    "name": "apilimitmax",
-                    "type": "integer"
-                },
-                {
-                    "description": "true if user and domain admins can set templates to be shared, false otherwise",
-                    "name": "userpublictemplateenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if region wide secondary is enabled, false otherwise",
-                    "name": "regionsecondaryenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the user can recover and expunge virtualmachines, false otherwise",
-                    "name": "allowuserexpungerecovervm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if security groups support is enabled, false otherwise",
-                    "name": "securitygroupsenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if regular user is allowed to create projects",
-                    "name": "allowusercreateprojects",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if dynamic role-based api checker is enabled, false otherwise",
-                    "name": "dynamicrolesenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "maximum size that can be specified when create disk from disk offering with custom size",
-                    "name": "customdiskofferingmaxsize",
-                    "type": "long"
-                },
-                {
-                    "description": "true if snapshot is supported for KVM host, false otherwise",
-                    "name": "kvmsnapshotenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if region supports elastic load balancer on basic zones",
-                    "name": "supportELB",
-                    "type": "string"
-                },
-                {
-                    "description": "If invitation confirmation is required when add account to project",
                     "name": "projectinviterequired",
+                    "description": "If invitation confirmation is required when add account to project",
                     "type": "boolean"
                 },
                 {
-                    "description": "minimum size that can be specified when create disk from disk offering with custom size",
+                    "name": "apilimitmax",
+                    "description": "Max allowed number of api requests within the specified interval",
+                    "type": "integer"
+                },
+                {
+                    "name": "userpublictemplateenabled",
+                    "description": "true if user and domain admins can set templates to be shared, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "customdiskofferingminsize",
+                    "description": "minimum size that can be specified when create disk from disk offering with custom size",
                     "type": "long"
                 },
                 {
-                    "description": "true if the user is allowed to view destroyed virtualmachines, false otherwise",
-                    "name": "allowuserviewdestroyedvm",
+                    "name": "allowusercreateprojects",
+                    "description": "true if regular user is allowed to create projects",
                     "type": "boolean"
                 },
                 {
-                    "description": "time interval (in seconds) to reset api count",
+                    "name": "supportELB",
+                    "description": "true if region supports elastic load balancer on basic zones",
+                    "type": "string"
+                },
+                {
+                    "name": "allowuserviewdestroyedvm",
+                    "description": "true if the user is allowed to view destroyed virtualmachines, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dynamicrolesenabled",
+                    "description": "true if dynamic role-based api checker is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cloudstackversion",
+                    "description": "version of the cloud stack",
+                    "type": "string"
+                },
+                {
                     "name": "apilimitinterval",
+                    "description": "time interval (in seconds) to reset api count",
                     "type": "integer"
+                },
+                {
+                    "name": "kvmsnapshotenabled",
+                    "description": "true if snapshot is supported for KVM host, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "customdiskofferingmaxsize",
+                    "description": "maximum size that can be specified when create disk from disk offering with custom size",
+                    "type": "long"
+                },
+                {
+                    "name": "securitygroupsenabled",
+                    "description": "true if security groups support is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "regionsecondaryenabled",
+                    "description": "true if region wide secondary is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "allowuserexpungerecovervm",
+                    "description": "true if the user can recover and expunge virtualmachines, false otherwise",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "releaseDedicatedZone",
             "description": "Release dedication of zone",
             "isasync": true,
-            "name": "releaseDedicatedZone",
             "params": [
                 {
-                    "description": "the ID of the Zone",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the ID of the Zone",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates traffic type of a physical network",
-            "isasync": true,
             "name": "updateTrafficType",
+            "description": "Updates traffic type of a physical network",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "addTrafficType",
             "params": [
                 {
-                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
-                    "length": 255,
                     "name": "kvmnetworklabel",
-                    "required": false,
-                    "type": "string"
+                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
-                    "length": 255,
-                    "name": "ovm3networklabel",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "traffic type id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateTrafficType,addTrafficType",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
-                    "length": 255,
-                    "name": "xennetworklabel",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
-                    "length": 255,
                     "name": "vmwarenetworklabel",
-                    "required": false,
-                    "type": "string"
+                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host",
+                    "name": "ovm3networklabel",
+                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "xennetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "traffic type id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateTrafficType,addTrafficType"
+                },
+                {
                     "name": "hypervnetworklabel",
-                    "required": false,
-                    "type": "string"
+                    "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addTrafficType",
             "response": [
                 {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
-                    "name": "ovm3networklabel",
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
-                    "name": "xennetworklabel",
-                    "type": "string"
-                },
-                {
-                    "description": "the trafficType to be added to the physical network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a HyperV host",
-                    "name": "hypervnetworklabel",
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
-                    "name": "vmwarenetworklabel",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the network provider",
                     "name": "id",
+                    "description": "id of the network provider",
                     "type": "string"
                 },
                 {
-                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
+                    "name": "vmwarenetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervnetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a HyperV host",
+                    "type": "string"
+                },
+                {
                     "name": "kvmnetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "xennetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the trafficType to be added to the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "ovm3networklabel",
+                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "listConditions",
             "description": "List Conditions for the specific user",
             "isasync": false,
-            "name": "listConditions",
+            "related": "createCondition",
             "params": [
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
                     "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "ID of the Condition.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createCondition,listConditions",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the policy",
-                    "length": 255,
-                    "name": "policyid",
-                    "related": "updateAutoScalePolicy,listAutoScalePolicies",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Counter-id of the condition.",
-                    "length": 255,
-                    "name": "counterid",
-                    "related": "createCounter,listCounters",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list only resources belonging to the domain specified",
+                    "name": "policyid",
+                    "description": "the ID of the policy",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
                     "required": false,
-                    "type": "uuid"
+                    "related": "updateAutoScalePolicy,listAutoScalePolicies"
                 },
                 {
-                    "description": "",
+                    "name": "id",
+                    "description": "ID of the Condition.",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listConditions,createCondition"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "counterid",
+                    "description": "Counter-id of the condition.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listCounters,createCounter"
                 }
             ],
-            "related": "createCondition",
             "response": [
                 {
-                    "description": "the domain id of the Condition owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of counter",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "Relational Operator to be used with threshold.",
-                    "name": "relationaloperator",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the Condition.",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the Condition",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the Condition.",
                     "name": "projectid",
+                    "description": "the project id of the Condition.",
                     "type": "string"
                 },
                 {
-                    "description": "Details of the Counter.",
                     "name": "counter",
+                    "description": "Details of the Counter.",
                     "type": "list"
                 },
                 {
-                    "description": "Threshold Value for the counter.",
-                    "name": "threshold",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain name of the owner.",
-                    "name": "domain",
+                    "name": "id",
+                    "description": "the id of the Condition",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the Condition",
+                    "name": "relationaloperator",
+                    "description": "Relational Operator to be used with threshold.",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner.",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of counter",
+                    "type": "string"
+                },
+                {
                     "name": "project",
+                    "description": "the project name of the Condition",
+                    "type": "string"
+                },
+                {
+                    "name": "threshold",
+                    "description": "Threshold Value for the counter.",
+                    "type": "long"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the Condition.",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the Condition owner",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates a network serviceProvider of a physical network",
-            "isasync": true,
             "name": "updateNetworkServiceProvider",
+            "description": "Updates a network serviceProvider of a physical network",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "listTrafficTypes,listNetworkServiceProviders,addNetworkServiceProvider",
             "params": [
                 {
-                    "description": "network service provider id",
+                    "name": "state",
+                    "description": "Enabled/Disabled/Shutdown the physical network service provider",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateNetworkServiceProvider,addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "Enabled/Disabled/Shutdown the physical network service provider",
+                    "name": "servicelist",
+                    "description": "the list of services to be enabled for this physical network service provider",
+                    "type": "list",
                     "length": 255,
-                    "name": "state",
-                    "required": false,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "network service provider id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listTrafficTypes,listNetworkServiceProviders,addNetworkServiceProvider,updateNetworkServiceProvider"
+                }
+            ],
+            "response": [
+                {
+                    "name": "destinationphysicalnetworkid",
+                    "description": "the destination physical network",
                     "type": "string"
                 },
                 {
-                    "description": "the list of services to be enabled for this physical network service provider",
-                    "length": 255,
-                    "name": "servicelist",
-                    "required": false,
-                    "type": "list"
-                }
-            ],
-            "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes",
-            "response": [
+                    "name": "state",
+                    "description": "state of the network provider",
+                    "type": "string"
+                },
                 {
-                    "description": "true if individual services can be enabled/disabled",
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
                     "name": "canenableindividualservice",
+                    "description": "true if individual services can be enabled/disabled",
                     "type": "boolean"
                 },
                 {
-                    "description": "the provider name",
                     "name": "name",
+                    "description": "the provider name",
                     "type": "string"
                 },
                 {
-                    "description": "the destination physical network",
-                    "name": "destinationphysicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network provider",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "uuid of the network provider",
                     "name": "id",
+                    "description": "uuid of the network provider",
                     "type": "string"
                 },
                 {
-                    "description": "services for this provider",
                     "name": "servicelist",
+                    "description": "services for this provider",
                     "type": "list"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "listInstanceGroups",
             "description": "Lists vm groups",
             "isasync": false,
-            "name": "listInstanceGroups",
+            "related": "createInstanceGroup,updateInstanceGroup",
             "params": [
                 {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list instance groups by name",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "list instance groups by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
                     "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,createProject,listProjects",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject,createProject"
                 },
                 {
-                    "description": "list instance groups by ID",
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "id",
-                    "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup",
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list instance groups by ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listInstanceGroups,createInstanceGroup,updateInstanceGroup"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createInstanceGroup,updateInstanceGroup",
             "response": [
                 {
-                    "description": "time and date the instance group was created",
+                    "name": "domain",
+                    "description": "the domain name of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the instance group",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "time and date the instance group was created",
                     "type": "date"
                 },
                 {
-                    "description": "the project name of the instance group",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the instance group",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the instance group",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the project ID of the instance group",
                     "name": "projectid",
+                    "description": "the project ID of the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the instance group",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the instance group",
-                    "name": "domain",
+                    "name": "domainid",
+                    "description": "the domain ID of the instance group",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "addNuageVspDevice",
+            "description": "Adds a Nuage VSP device",
+            "since": "4.5",
+            "isasync": true,
+            "related": "listNuageVspDevices,updateNuageVspDevice",
+            "params": [
+                {
+                    "name": "apiversion",
+                    "description": "the version of the API to use to communicate to Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "the user name of the CMS user in Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "port",
+                    "description": "the port to communicate to Nuage VSD",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "password",
+                    "description": "the password of CMS user in Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "retrycount",
+                    "description": "the number of retries on failure to communicate to Nuage VSD",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "retryinterval",
+                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname of the Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the ID of the physical network in to which Nuage VSP is added",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updatePhysicalNetwork,createPhysicalNetwork"
+                }
+            ],
+            "response": [
+                {
+                    "name": "retrycount",
+                    "description": "the number of retries on failure to communicate to Nuage VSD",
+                    "type": "int"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the ID of the physical network to which this Nuage VSP belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname of the Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "the service provider name corresponding to this Nuage VSP device",
+                    "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "the port to communicate to Nuage VSD",
+                    "type": "int"
+                },
+                {
+                    "name": "cmsid",
+                    "description": "the CMS ID generated by the Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "nuagedevicename",
+                    "description": "the name of the Nuage VSP device",
+                    "type": "string"
+                },
+                {
+                    "name": "retryinterval",
+                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
+                    "type": "long"
+                },
+                {
+                    "name": "vspdeviceid",
+                    "description": "the device id of the Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "apiversion",
+                    "description": "the version of the API to use to communicate to Nuage VSD",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "removeFromLoadBalancerRule",
             "description": "Removes a virtual machine or a list of virtual machines from a load balancer rule.",
             "isasync": true,
-            "name": "removeFromLoadBalancerRule",
             "params": [
                 {
-                    "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75",
-                    "length": 255,
-                    "name": "vmidipmap",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "map"
-                },
-                {
-                    "description": "the list of IDs of the virtual machines that are being removed from the load balancer rule (i.e. virtualMachineIds=1,2,3)",
-                    "length": 255,
-                    "name": "virtualmachineids",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "The ID of the load balancer rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
+                    "description": "The ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                },
+                {
+                    "name": "vmidipmap",
+                    "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75",
+                    "type": "map",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "virtualmachineids",
+                    "description": "the list of IDs of the virtual machines that are being removed from the load balancer rule (i.e. virtualMachineIds=1,2,3)",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Adds a Nuage VSP device",
-            "isasync": true,
-            "name": "addNuageVspDevice",
-            "params": [
-                {
-                    "description": "the hostname of the Nuage VSD",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the port to communicate to Nuage VSD",
-                    "length": 255,
-                    "name": "port",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "the password of CMS user in Nuage VSD",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the version of the API to use to communicate to Nuage VSD",
-                    "length": 255,
-                    "name": "apiversion",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the physical network in to which Nuage VSP is added",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the user name of the CMS user in Nuage VSD",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
-                    "length": 255,
-                    "name": "retryinterval",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the number of retries on failure to communicate to Nuage VSD",
-                    "length": 255,
-                    "name": "retrycount",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "updateNuageVspDevice,listNuageVspDevices",
-            "response": [
-                {
-                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
-                    "name": "retryinterval",
-                    "type": "long"
-                },
-                {
-                    "description": "the hostname of the Nuage VSD",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the physical network to which this Nuage VSP belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the CMS ID generated by the Nuage VSD",
-                    "name": "cmsid",
-                    "type": "string"
-                },
-                {
-                    "description": "the device id of the Nuage VSD",
-                    "name": "vspdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the service provider name corresponding to this Nuage VSP device",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Nuage VSP device",
-                    "name": "nuagedevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of the API to use to communicate to Nuage VSD",
-                    "name": "apiversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of retries on failure to communicate to Nuage VSD",
-                    "name": "retrycount",
-                    "type": "int"
-                },
-                {
-                    "description": "the port to communicate to Nuage VSD",
-                    "name": "port",
-                    "type": "int"
-                }
-            ],
-            "since": "4.5"
-        },
-        {
+            "name": "createStaticRoute",
             "description": "Creates a static route",
             "isasync": true,
-            "name": "createStaticRoute",
+            "related": "listStaticRoutes",
             "params": [
                 {
-                    "description": "the gateway id we are creating static route for",
-                    "length": 255,
                     "name": "gatewayid",
-                    "related": "createPrivateGateway",
+                    "description": "the gateway id we are creating static route for",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createPrivateGateway"
                 },
                 {
-                    "description": "static route cidr",
-                    "length": 255,
                     "name": "cidr",
-                    "required": true,
-                    "type": "string"
+                    "description": "static route cidr",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listStaticRoutes",
             "response": [
                 {
-                    "description": "the state of the static route",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the static route",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC gateway the route is created for",
                     "name": "gatewayid",
+                    "description": "VPC gateway the route is created for",
                     "type": "string"
                 },
                 {
-                    "description": "static route CIDR",
                     "name": "cidr",
+                    "description": "static route CIDR",
                     "type": "string"
                 },
                 {
-                    "description": "the domain associated with the static route",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the static route",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the static route",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the static route",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with static route",
                     "name": "tags",
+                    "description": "the list of resource tags associated with static route",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
                             "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the ID of static route",
                     "name": "id",
+                    "description": "the ID of static route",
                     "type": "string"
                 },
                 {
-                    "description": "VPC the static route belongs to",
+                    "name": "projectid",
+                    "description": "the project id of the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the static route",
+                    "type": "string"
+                },
+                {
                     "name": "vpcid",
+                    "description": "VPC the static route belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the static route",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Adds traffic type to a physical network",
-            "isasync": true,
             "name": "addTrafficType",
+            "description": "Adds traffic type to a physical network",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the trafficType to be added to the physical network",
-                    "length": 255,
-                    "name": "traffictype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
-                    "length": 255,
-                    "name": "vmwarenetworklabel",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
-                    "length": 255,
-                    "name": "xennetworklabel",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The VLAN id to be used for Management traffic by VMware host",
-                    "length": 255,
-                    "name": "vlan",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Used if physical network has multiple isolation types and traffic type is public. Choose which isolation method. Valid options currently 'vlan' or 'vxlan', defaults to 'vlan'.",
-                    "length": 255,
-                    "name": "isolationmethod",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
-                    "length": 255,
-                    "name": "ovm3networklabel",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
-                    "length": 255,
-                    "name": "kvmnetworklabel",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host",
-                    "length": 255,
                     "name": "hypervnetworklabel",
-                    "required": false,
-                    "type": "string"
+                    "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vlan",
+                    "description": "The VLAN id to be used for Management traffic by VMware host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "kvmnetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vmwarenetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updatePhysicalNetwork,createPhysicalNetwork"
+                },
+                {
+                    "name": "isolationmethod",
+                    "description": "Used if physical network has multiple isolation types and traffic type is public. Choose which isolation method. Valid options currently 'vlan' or 'vxlan', defaults to 'vlan'.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "xennetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the trafficType to be added to the physical network",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "ovm3networklabel",
+                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the trafficType to be added to the physical network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
-                    "name": "ovm3networklabel",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the network provider",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
-                    "name": "xennetworklabel",
-                    "type": "string"
-                },
-                {
-                    "description": "The network name label of the physical device dedicated to this traffic on a HyperV host",
-                    "name": "hypervnetworklabel",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network this belongs to",
                     "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
+                    "name": "hypervnetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a HyperV host",
+                    "type": "string"
+                },
+                {
                     "name": "vmwarenetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a VMware host",
                     "type": "string"
                 },
                 {
-                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
                     "name": "kvmnetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a KVM host",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "id of the network provider",
+                    "type": "string"
+                },
+                {
+                    "name": "xennetworklabel",
+                    "description": "The network name label of the physical device dedicated to this traffic on a XenServer host",
+                    "type": "string"
+                },
+                {
+                    "name": "ovm3networklabel",
+                    "description": "The network name of the physical device dedicated to this traffic on an OVM3 host",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the trafficType to be added to the physical network",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "deletePrivateGateway",
             "description": "Deletes a Private gateway",
             "isasync": true,
-            "name": "deletePrivateGateway",
             "params": [
                 {
-                    "description": "the ID of the private gateway",
-                    "length": 255,
                     "name": "id",
-                    "related": "createPrivateGateway",
+                    "description": "the ID of the private gateway",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createPrivateGateway"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listLoadBalancerRuleInstances",
             "description": "List all virtual machine instances that are assigned to a load balancer rule.",
             "isasync": false,
-            "name": "listLoadBalancerRuleInstances",
+            "related": "listLoadBalancerRuleInstances",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "true if load balancer rule VM IP information to be included; default is false",
-                    "length": 255,
                     "name": "lbvmips",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if load balancer rule VM IP information to be included; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the load balancer rule",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "true if listing all virtual machines currently applied to the load balancer rule; default is true",
-                    "length": 255,
-                    "name": "applied",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
+                    "name": "pagesize",
                     "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "applied",
+                    "description": "true if listing all virtual machines currently applied to the load balancer rule; default is true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                },
+                {
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listLoadBalancerRuleInstances",
             "response": [
                 {
-                    "description": "IP addresses of the vm set of lb rule",
-                    "name": "lbvmipaddresses",
-                    "type": "list"
+                    "name": "loadbalancerruleinstance",
+                    "description": "the user vm set for lb rule",
+                    "type": "uservmresponse"
                 },
                 {
-                    "description": "the user vm set for lb rule",
-                    "name": "loadbalancerruleinstance",
-                    "type": "uservmresponse"
+                    "name": "lbvmipaddresses",
+                    "description": "IP addresses of the vm set of lb rule",
+                    "type": "list"
                 }
             ]
         },
         {
+            "name": "deleteCondition",
             "description": "Removes a condition",
             "isasync": true,
-            "name": "deleteCondition",
             "params": [
                 {
-                    "description": "the ID of the condition.",
-                    "length": 255,
                     "name": "id",
-                    "related": "createCondition",
+                    "description": "the ID of the condition.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createCondition"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "updateDomain",
             "description": "Updates a domain with a new name",
             "isasync": false,
-            "name": "updateDomain",
+            "related": "createDomain,listDomainChildren,listDomains,listDomains",
             "params": [
                 {
-                    "description": "ID of domain to update",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateDomain,createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "updates domain with this name",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "updates domain with this name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Network domain for the domain's networks; empty string will update domainName with NULL value",
-                    "length": 255,
                     "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
+                    "description": "Network domain for the domain's networks; empty string will update domainName with NULL value",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "ID of domain to update",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createDomain,listDomainChildren,updateDomain,listDomains,listDomains"
                 }
             ],
-            "related": "createDomain,listDomains,listDomainChildren,listDomains",
             "response": [
                 {
-                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
-                    "name": "secondarystorageavailable",
+                    "name": "path",
+                    "description": "the path of the domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects being administrated by this domain",
-                    "name": "projecttotal",
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of public ip addresses allocated for this domain",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by domain",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this domain",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks available to be created for this domain",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this domain",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this domain",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the domain",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the domain can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this domain",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this domain",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the domain can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this domain",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the domain can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this domain",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this domain",
                     "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID of the parent domain",
-                    "name": "parentdomainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by domain",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines available for this domain to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this domain",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this domain",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the domain can own",
                     "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots stored by this domain",
-                    "name": "snapshottotal",
+                    "name": "parentdomainid",
+                    "description": "the domain ID of the parent domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of public ip addresses available for this domain to acquire",
-                    "name": "ipavailable",
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores the domain can own",
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this domain",
+                    "type": "string"
+                },
+                {
                     "name": "cpulimit",
+                    "description": "the total number of cpu cores the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores owned by domain",
-                    "name": "cputotal",
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by domain",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the domain",
-                    "name": "name",
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "haschild",
+                    "description": "whether the domain has one or more sub-domains",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) the domain can own",
+                    "name": "id",
+                    "description": "the ID of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this domain",
+                    "type": "string"
+                },
+                {
                     "name": "memorylimit",
+                    "description": "the total memory (in MB) the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "the level of the domain",
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "parentdomainname",
+                    "description": "the domain name of the parent domain",
+                    "type": "string"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this domain",
+                    "type": "string"
+                },
+                {
                     "name": "level",
+                    "description": "the level of the domain",
                     "type": "integer"
                 },
                 {
-                    "description": "the total number of public ip addresses this domain can acquire",
-                    "name": "iplimit",
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total primary storage space (in GiB) owned by domain",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) owned by domain",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain name of the parent domain",
-                    "name": "parentdomainname",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this domain",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this domain",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects the domain can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this domain",
                     "name": "volumeavailable",
+                    "description": "the total volume available for this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which have been created by this domain",
-                    "name": "templatetotal",
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of networks owned by domain",
-                    "name": "networktotal",
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this domain can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this domain to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this domain",
                     "type": "long"
                 },
                 {
-                    "description": "the ID of the domain",
-                    "name": "id",
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the path of the domain",
-                    "name": "path",
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this domain to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects available for administration by this domain",
-                    "name": "projectavailable",
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this domain",
                     "type": "string"
                 },
                 {
-                    "description": "whether the domain has one or more sub-domains",
-                    "name": "haschild",
-                    "type": "boolean"
+                    "name": "networklimit",
+                    "description": "the total number of networks the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by domain",
+                    "type": "float"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "projectlimit",
+                    "description": "the total number of projects the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the domain",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates a physical network",
-            "isasync": true,
             "name": "updatePhysicalNetwork",
+            "description": "Updates a physical network",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "createPhysicalNetwork",
             "params": [
                 {
-                    "description": "the speed for the physical network[1G/10G]",
-                    "length": 255,
-                    "name": "networkspeed",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Tag the physical network",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "physical network id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updatePhysicalNetwork,createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Enabled/Disabled",
-                    "length": 255,
                     "name": "state",
-                    "required": false,
-                    "type": "string"
+                    "description": "Enabled/Disabled",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the VLAN for the physical network",
-                    "length": 255,
                     "name": "vlan",
-                    "required": false,
-                    "type": "string"
+                    "description": "the VLAN for the physical network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkspeed",
+                    "description": "the speed for the physical network[1G/10G]",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "physical network id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updatePhysicalNetwork,createPhysicalNetwork"
+                },
+                {
+                    "name": "tags",
+                    "description": "Tag the physical network",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createPhysicalNetwork",
             "response": [
                 {
-                    "description": "the speed of the physical network",
-                    "name": "networkspeed",
-                    "type": "string"
-                },
-                {
-                    "description": "Broadcast domain range of the physical network",
-                    "name": "broadcastdomainrange",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the physical network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "comma separated tag",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "the uuid of the physical network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the physical network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the vlan of the physical network",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the physical network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "isolation methods",
-                    "name": "isolationmethods",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the physical network",
                     "name": "state",
+                    "description": "state of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkspeed",
+                    "description": "the speed of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the physical network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "comma separated tag",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the vlan of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "isolationmethods",
+                    "description": "isolation methods",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the uuid of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomainrange",
+                    "description": "Broadcast domain range of the physical network",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "disableAutoScaleVmGroup",
             "description": "Disables an AutoScale Vm Group",
             "isasync": true,
-            "name": "disableAutoScaleVmGroup",
+            "related": "updateAutoScaleVmGroup,enableAutoScaleVmGroup,listAutoScaleVmGroups",
             "params": [
                 {
-                    "description": "the ID of the autoscale group",
-                    "length": 255,
                     "name": "id",
-                    "related": "enableAutoScaleVmGroup,disableAutoScaleVmGroup,updateAutoScaleVmGroup,listAutoScaleVmGroups",
+                    "description": "the ID of the autoscale group",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateAutoScaleVmGroup,enableAutoScaleVmGroup,disableAutoScaleVmGroup,listAutoScaleVmGroups"
                 }
             ],
-            "related": "enableAutoScaleVmGroup,updateAutoScaleVmGroup,listAutoScaleVmGroups",
             "response": [
                 {
-                    "description": "the account owning the instance group",
+                    "name": "minmembers",
+                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
+                    "type": "int"
+                },
+                {
                     "name": "account",
+                    "description": "the account owning the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "the autoscale profile that contains information about the vms in the vm group.",
                     "name": "vmprofileid",
+                    "description": "the autoscale profile that contains information about the vms in the vm group.",
                     "type": "string"
                 },
                 {
-                    "description": "the load balancer rule ID",
-                    "name": "lbruleid",
+                    "name": "domain",
+                    "description": "the domain name of the vm profile",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the vm profile",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the current state of the AutoScale Vm Group",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "is group for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is group for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the autoscale vm group ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the frequency at which the conditions have to be evaluated",
-                    "name": "interval",
-                    "type": "int"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
                     "name": "domainid",
+                    "description": "the domain ID of the vm profile",
                     "type": "string"
                 },
                 {
-                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
-                    "name": "minmembers",
-                    "type": "int"
-                },
-                {
-                    "description": "the domain name of the vm profile",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "list of scaleup autoscale policies",
-                    "name": "scaleuppolicies",
-                    "type": "list"
-                },
-                {
-                    "description": "list of scaledown autoscale policies",
-                    "name": "scaledownpolicies",
-                    "type": "list"
-                },
-                {
-                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
                     "name": "maxmembers",
+                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
                     "type": "int"
                 },
                 {
-                    "description": "the project id vm profile",
+                    "name": "project",
+                    "description": "the project name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale vm group ID",
+                    "type": "string"
+                },
+                {
                     "name": "projectid",
+                    "description": "the project id vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the current state of the AutoScale Vm Group",
+                    "type": "string"
+                },
+                {
+                    "name": "interval",
+                    "description": "the frequency at which the conditions have to be evaluated",
+                    "type": "int"
+                },
+                {
+                    "name": "scaleuppolicies",
+                    "description": "list of scaleup autoscale policies",
+                    "type": "list"
+                },
+                {
+                    "name": "scaledownpolicies",
+                    "description": "list of scaledown autoscale policies",
+                    "type": "list"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the load balancer rule ID",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createSnapshotPolicy",
             "description": "Creates a snapshot policy for the account.",
             "isasync": false,
-            "name": "createSnapshotPolicy",
+            "related": "updateSnapshotPolicy",
             "params": [
                 {
-                    "description": "an optional field, whether to the display the policy to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY",
-                    "length": 255,
-                    "name": "intervaltype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "time the snapshot is scheduled to be taken. Format is:* if HOURLY, MM* if DAILY, MM:HH* if WEEKLY, MM:HH:DD (1-7)* if MONTHLY, MM:HH:DD (1-28)",
-                    "length": 255,
                     "name": "schedule",
-                    "required": true,
-                    "type": "string"
+                    "description": "time the snapshot is scheduled to be taken. Format is:* if HOURLY, MM* if DAILY, MM:HH* if WEEKLY, MM:HH:DD (1-7)* if MONTHLY, MM:HH:DD (1-28)",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
                     "name": "volumeid",
-                    "related": "detachVolume,listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listVolumes,detachVolume,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
                 },
                 {
-                    "description": "maximum number of snapshots to retain",
-                    "length": 255,
                     "name": "maxsnaps",
-                    "required": true,
-                    "type": "integer"
+                    "description": "maximum number of snapshots to retain",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
-                    "length": 255,
                     "name": "timezone",
-                    "required": true,
-                    "type": "string"
+                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "intervaltype",
+                    "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the policy to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "updateSnapshotPolicy",
             "response": [
                 {
-                    "description": "the ID of the snapshot policy",
-                    "name": "id",
+                    "name": "volumeid",
+                    "description": "the ID of the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "is this policy for display to the regular user",
+                    "name": "timezone",
+                    "description": "the time zone of the snapshot policy",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is this policy for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "maximum number of snapshots retained",
-                    "name": "maxsnaps",
-                    "type": "int"
-                },
-                {
-                    "description": "the ID of the disk volume",
-                    "name": "volumeid",
-                    "type": "string"
-                },
-                {
-                    "description": "time the snapshot is scheduled to be taken.",
-                    "name": "schedule",
-                    "type": "string"
-                },
-                {
-                    "description": "the interval type of the snapshot policy",
                     "name": "intervaltype",
+                    "description": "the interval type of the snapshot policy",
                     "type": "short"
                 },
                 {
-                    "description": "the time zone of the snapshot policy",
-                    "name": "timezone",
+                    "name": "schedule",
+                    "description": "time the snapshot is scheduled to be taken.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the snapshot policy",
+                    "type": "string"
+                },
+                {
+                    "name": "maxsnaps",
+                    "description": "maximum number of snapshots retained",
+                    "type": "int"
+                }
+            ]
+        },
+        {
+            "name": "disableHAForZone",
+            "description": "Disables HA for a zone",
+            "since": "4.11",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "deleteNuageVspDevice",
+            "description": "delete a nuage vsp device",
+            "since": "4.5",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "vspdeviceid",
+                    "description": "Nuage device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNuageVspDevices,updateNuageVspDevice"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "createRolePermission",
+            "description": "Adds a API permission to a role",
+            "since": "4.9.0",
+            "isasync": false,
+            "related": "listRolePermissions",
+            "params": [
+                {
+                    "name": "rule",
+                    "description": "The API name or wildcard rule such as list*",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "The description of the role permission",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "roleid",
+                    "description": "ID of the role",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createRole,listRoles,updateRole"
+                },
+                {
+                    "name": "permission",
+                    "description": "The rule permission, allow or deny. Default: deny.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "rule",
+                    "description": "the api name or wildcard rule",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the role permission",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role to which the role permission belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role to which the role permission belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "permission",
+                    "description": "the permission type of the api name or wildcard rule, allow/deny",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the role permission",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "delete a nuage vsp device",
-            "isasync": true,
-            "name": "deleteNuageVspDevice",
-            "params": [
-                {
-                    "description": "Nuage device ID",
-                    "length": 255,
-                    "name": "vspdeviceid",
-                    "related": "updateNuageVspDevice,listNuageVspDevices",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.5"
-        },
-        {
-            "description": "Adds a API permission to a role",
-            "isasync": false,
-            "name": "createRolePermission",
-            "params": [
-                {
-                    "description": "The rule permission, allow or deny. Default: deny.",
-                    "length": 255,
-                    "name": "permission",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The API name or wildcard rule such as list*",
-                    "length": 255,
-                    "name": "rule",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the role",
-                    "length": 255,
-                    "name": "roleid",
-                    "related": "listRoles,createRole",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The description of the role permission",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "listRolePermissions",
-            "response": [
-                {
-                    "description": "the name of the role to which the role permission belongs",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role to which the role permission belongs",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the api name or wildcard rule",
-                    "name": "rule",
-                    "type": "string"
-                },
-                {
-                    "description": "the permission type of the api name or wildcard rule, allow/deny",
-                    "name": "permission",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the role permission",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role permission",
-                    "name": "id",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
+            "name": "listSystemVms",
             "description": "List system virtual machines.",
             "isasync": false,
-            "name": "listSystemVms",
+            "related": "changeServiceForSystemVm,migrateSystemVm,startSystemVm",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the system VM",
-                    "length": 255,
-                    "name": "id",
-                    "related": "changeServiceForSystemVm,migrateSystemVm,listSystemVms,startSystemVm",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the system VM type. Possible types are \"consoleproxy\" and \"secondarystoragevm\".",
-                    "length": 255,
-                    "name": "systemvmtype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Pod ID of the system VM",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the state of the system VM",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the system VM",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the Zone ID of the system VM",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "the host ID of the system VM",
+                    "name": "systemvmtype",
+                    "description": "the system VM type. Possible types are \"consoleproxy\" and \"secondarystoragevm\".",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the system VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the system VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "changeServiceForSystemVm,migrateSystemVm,startSystemVm,listSystemVms"
+                },
+                {
                     "name": "hostid",
-                    "related": "addBaremetalHost,listExternalLoadBalancers,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
+                    "description": "the host ID of the system VM",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
                 },
                 {
-                    "description": "the storage ID where vm's volumes belong to",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "storageid",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
+                    "description": "the storage ID where vm's volumes belong to",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
                     "since": "3.0.1",
-                    "type": "uuid"
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
                 },
                 {
-                    "description": "the name of the system VM",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "the name of the system VM",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "changeServiceForSystemVm,migrateSystemVm,startSystemVm",
             "response": [
                 {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the system VM",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the system VM",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the system VM",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the system VM",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the system VM",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the system VM type",
-                    "name": "systemvmtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the system VM",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the private IP address for the system VM",
-                    "name": "privateip",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the system VM",
                     "name": "zonename",
+                    "description": "the Zone name for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway for the system VM",
                     "name": "gateway",
+                    "description": "the gateway for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the hostname for the system VM",
-                    "name": "hostname",
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
                     "type": "string"
                 },
                 {
-                    "description": "the number of active console sessions for the console proxy system vm",
-                    "name": "activeviewersessions",
-                    "type": "integer"
-                },
-                {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the system VM",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the system VM",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private MAC address for the system VM",
-                    "name": "privatemacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the public MAC address for the system VM",
                     "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the system VM was created",
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "systemvmtype",
+                    "description": "the system VM type",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date and time the system VM was created",
                     "type": "date"
                 },
                 {
-                    "description": "the template ID for the system VM",
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
                     "name": "templateid",
+                    "description": "the template ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
+                    "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
+                    "type": "integer"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privateip",
+                    "description": "the private IP address for the system VM",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Creates a project",
-            "isasync": true,
             "name": "createProject",
+            "description": "Creates a project",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject",
             "params": [
                 {
-                    "description": "domain ID of the account owning a project",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "account who will be Admin for the project",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the project",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "name of the project",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "name of the project",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "domain ID of the account owning a project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "display text of the project",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "account",
+                    "description": "account who will be Admin for the project",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
             "response": [
                 {
-                    "description": "the account name of the project's owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the project can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this project",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which have been created by this project",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines available for this project to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this project",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total memory (in MB) owned by project",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this project",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the project can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this project",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) the project can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this project",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this project",
                     "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this project",
                     "type": "integer"
                 },
                 {
-                    "description": "the total number of vpcs available to be created for this project",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this project",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id the project belongs to",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by project",
-                    "name": "primarystoragetotal",
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by project",
                     "type": "long"
                 },
                 {
-                    "description": "the total volume which can be used by this project",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this project",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks available to be created for this project",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this project can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the project",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this project",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this project to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots stored by this project",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots available for this project",
                     "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this project",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores available to be created for this project",
+                    "name": "name",
+                    "description": "the name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the project's owner",
+                    "type": "string"
+                },
+                {
                     "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this project",
                     "type": "string"
                 },
                 {
-                    "description": "the displaytext of the project",
-                    "name": "displaytext",
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this project",
+                    "type": "long"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the project can own",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with vm",
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "projectaccountname",
+                    "description": "the project account name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name where the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with vm",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the project id the tag belongs to",
                             "name": "projectid",
+                            "description": "the project id the tag belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
                             "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the domain associated with the tag",
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
                             "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the total number of networks the project can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the project",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this project",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this project",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name where the project belongs to",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by project",
-                    "name": "vpctotal",
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this project",
                     "type": "long"
                 },
                 {
-                    "description": "the total volume available for this project",
-                    "name": "volumeavailable",
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the project can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which can be created by this project",
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by project",
+                    "type": "long"
+                },
+                {
                     "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this project",
                     "type": "string"
                 },
                 {
-                    "description": "the total primary storage space (in GiB) the project can own",
-                    "name": "primarystoragelimit",
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id the project belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores the project can own",
-                    "name": "cpulimit",
+                    "name": "state",
+                    "description": "the state of the project",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the project",
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this project",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the id of the project",
                     "type": "string"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) owned by project",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the project can own",
+                    "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores owned by project",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks owned by project",
                     "name": "networktotal",
+                    "description": "the total number of networks owned by project",
                     "type": "long"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by project",
+                    "type": "float"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this project can acquire",
+                    "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "assignCertToLoadBalancer",
             "description": "Assigns a certificate to a load balancer rule",
             "isasync": true,
-            "name": "assignCertToLoadBalancer",
             "params": [
                 {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the certificate",
-                    "length": 255,
                     "name": "certid",
-                    "related": "uploadSslCert",
+                    "description": "the ID of the certificate",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "uploadSslCert"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Adds a Cisco Vnmc Controller",
-            "isasync": false,
-            "name": "addCiscoVnmcResource",
-            "params": [
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Hostname or ip address of the Cisco VNMC Controller.",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to access the Cisco VNMC Controller API",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to access the Cisco VNMC Controller API",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "listCiscoVnmcResources",
-            "response": [
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                }
-            ]
-        },
-        {
-            "description": "Replaces ACL associated with a network or private gateway",
-            "isasync": true,
-            "name": "replaceNetworkACLList",
-            "params": [
-                {
-                    "description": "the ID of the network ACL",
-                    "length": 255,
-                    "name": "aclid",
-                    "related": "createNetworkACLList,listNetworkACLLists",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the private gateway",
-                    "length": 255,
-                    "name": "gatewayid",
-                    "related": "createPrivateGateway",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the network",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
                     "description": "any text associated with the success or failure",
-                    "name": "displaytext",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "detachVolume",
             "description": "Detaches a disk volume from a virtual machine.",
             "isasync": true,
-            "name": "detachVolume",
+            "related": "listVolumes,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
             "params": [
                 {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "detachVolume,listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the virtual machine where the volume is detached from",
-                    "length": 255,
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "the ID of the virtual machine where the volume is detached from",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "the device ID on the virtual machine where volume is detached from",
-                    "length": 255,
                     "name": "deviceid",
+                    "description": "the device ID on the virtual machine where volume is detached from",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "long"
+                    "related": "listVolumes,detachVolume,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
                 }
             ],
-            "related": "listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
             "response": [
                 {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the display text of the disk offering",
-                    "name": "diskofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
-                    "type": "date"
-                },
-                {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
-                    "name": "displayvolume",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the state of the disk volume",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the service offering for root disk",
-                    "name": "serviceofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the path of the volume",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the virtual machine",
                     "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the date the disk volume was created",
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "size of the disk volume",
+                    "type": "long"
+                },
+                {
                     "name": "created",
+                    "description": "the date the disk volume was created",
                     "type": "date"
                 },
                 {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the boolean state of whether the volume is destroyed or not",
-                    "name": "destroyed",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "need quiesce vm or not when taking snapshot",
-                    "name": "quiescevm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the status of the volume",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the disk offering",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes.",
                     "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
                     "type": "string"
                 },
                 {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
+                    "name": "zonename",
+                    "description": "name of the availability zone",
                     "type": "string"
                 },
                 {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
                     "type": "long"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "name of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "shared or local storage",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Marks a default zone for this account",
+            "name": "replaceNetworkACLList",
+            "description": "Replaces ACL associated with a network or private gateway",
             "isasync": true,
-            "name": "markDefaultZoneForAccount",
             "params": [
                 {
-                    "description": "Name of the account that is to be marked.",
+                    "name": "networkid",
+                    "description": "the ID of the network",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "account",
-                    "related": "disableAccount,listAccounts,markDefaultZoneForAccount,listAccounts,enableAccount,updateAccount,createAccount",
-                    "required": true,
-                    "type": "string"
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
                 },
                 {
-                    "description": "Marks the account that belongs to the specified domain.",
+                    "name": "gatewayid",
+                    "description": "the ID of the private gateway",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false,
+                    "related": "createPrivateGateway"
                 },
                 {
-                    "description": "The Zone ID with which the account is to be marked.",
+                    "name": "aclid",
+                    "description": "the ID of the network ACL",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
                     "required": true,
-                    "type": "uuid"
+                    "related": "createNetworkACLList,listNetworkACLLists"
                 }
             ],
-            "related": "disableAccount,listAccounts,listAccounts,enableAccount,updateAccount,createAccount",
             "response": [
                 {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
-                },
-                {
-                    "description": "details for the account",
-                    "name": "accountdetails",
-                    "type": "map"
-                },
-                {
-                    "description": "the default zone of the account",
-                    "name": "defaultzoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this account",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this account",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "account type (admin, domain-admin, user)",
-                    "name": "accounttype",
-                    "type": "short"
-                },
-                {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this account",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "true if account is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this account",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the account",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of users associated with account",
-                    "name": "user",
-                    "response": [
-                        {
-                            "description": "the user email address",
-                            "name": "email",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the user",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account name of the user",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the api key of the user",
-                            "name": "apikey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the role",
-                            "name": "roletype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the timezone user was created in",
-                            "name": "timezone",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
-                            "name": "iscallerchilddomain",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the date and time the user account was created",
-                            "name": "created",
-                            "type": "date"
-                        },
-                        {
-                            "description": "the user state",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account type of the user",
-                            "name": "accounttype",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the secret key of the user",
-                            "name": "secretkey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the role",
-                            "name": "roleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if user is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the user firstname",
-                            "name": "firstname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user name",
-                            "name": "username",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the role",
-                            "name": "rolename",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of acl groups that account belongs to",
-                    "name": "groups",
-                    "type": "list"
-                },
-                {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this account can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this account",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by account",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects the account can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
-                    "type": "string"
                 }
-            ],
-            "since": "4.0"
+            ]
         },
         {
-            "description": "Enables out-of-band management for a zone",
-            "isasync": true,
             "name": "enableOutOfBandManagementForZone",
+            "description": "Enables out-of-band management for a zone",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,issueOutOfBandManagementPowerAction,disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
             "params": [
                 {
-                    "description": "the ID of the zone",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
-            "related": "disableOutOfBandManagementForCluster,disableOutOfBandManagementForHost,issueOutOfBandManagementPowerAction,enableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
             "response": [
                 {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the out-of-band management driver for the host",
                     "name": "driver",
+                    "description": "the out-of-band management driver for the host",
                     "type": "string"
                 },
                 {
-                    "description": "the operation result description",
-                    "name": "description",
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management interface port",
                     "name": "port",
+                    "description": "the out-of-band management interface port",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management interface address",
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
                     "name": "address",
+                    "description": "the out-of-band management interface address",
                     "type": "string"
                 },
                 {
-                    "description": "the out-of-band management interface powerState of the host",
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
+                },
+                {
                     "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
                     "type": "powerstate"
                 },
                 {
-                    "description": "the out-of-band management interface password",
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                },
+                {
                     "name": "password",
+                    "description": "the out-of-band management interface password",
                     "type": "string"
                 },
                 {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
                     "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
+                    "description": "the out-of-band management action (if issued)",
                     "type": "string"
                 }
-            ],
-            "since": "4.9.0"
+            ]
         },
         {
-            "description": "Lists all LDAP Users",
-            "isasync": false,
-            "name": "listLdapUsers",
+            "name": "markDefaultZoneForAccount",
+            "description": "Marks a default zone for this account",
+            "since": "4.0",
+            "isasync": true,
+            "related": "updateAccount,listAccounts,enableAccount,listAccounts,disableAccount,createAccount",
             "params": [
                 {
-                    "description": "List by keyword",
+                    "name": "zoneid",
+                    "description": "The Zone ID with which the account is to be marked.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "",
+                    "name": "account",
+                    "description": "Name of the account that is to be marked.",
+                    "type": "string",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": true,
+                    "related": "updateAccount,listAccounts,enableAccount,listAccounts,markDefaultZoneForAccount,disableAccount,createAccount"
                 },
                 {
-                    "description": "Determines whether all ldap users are returned or just non-cloudstack users",
+                    "name": "domainid",
+                    "description": "Marks the account that belongs to the specified domain.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "listtype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": true,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "The user's principle",
-                    "name": "principal",
+                    "name": "state",
+                    "description": "the state of the account",
                     "type": "string"
                 },
                 {
-                    "description": "The user's domain",
+                    "name": "domainid",
+                    "description": "id of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
+                    "type": "list"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
+                    "type": "boolean"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for the account",
+                    "type": "map"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "created",
+                            "description": "the date and time the user account was created",
+                            "type": "date"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the user ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "accounttype",
+                            "description": "the account type of the user",
+                            "type": "short"
+                        },
+                        {
+                            "name": "username",
+                            "description": "the user name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roleid",
+                            "description": "the ID of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "timezone",
+                            "description": "the timezone user was created in",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                            "type": "string"
+                        },
+                        {
+                            "name": "firstname",
+                            "description": "the user firstname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "rolename",
+                            "description": "the name of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "lastname",
+                            "description": "the user lastname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secretkey",
+                            "description": "the secret key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roletype",
+                            "description": "the type of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the user state",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "apikey",
+                            "description": "the api key of the user",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "defaultzoneid",
+                    "description": "the default zone of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
+                },
+                {
                     "name": "domain",
+                    "description": "name of the Domain the account belongs too",
                     "type": "string"
                 },
                 {
-                    "description": "The user's email",
-                    "name": "email",
+                    "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
+                    "type": "short"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
                     "type": "string"
                 },
                 {
-                    "description": "The user's username",
-                    "name": "username",
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "The user's firstname",
-                    "name": "firstname",
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "The user's lastname",
-                    "name": "lastname",
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
+                    "type": "long"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
                     "type": "string"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "listLdapUsers",
+            "description": "Lists all LDAP Users",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "listtype",
+                    "description": "Determines whether all ldap users are returned or just non-cloudstack users",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "username",
+                    "description": "The user's username",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "The user's domain",
+                    "type": "string"
+                },
+                {
+                    "name": "lastname",
+                    "description": "The user's lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "firstname",
+                    "description": "The user's firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "principal",
+                    "description": "The user's principle",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "The user's email",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "revokeCertificate",
+            "description": "Revokes certificate using configured CA plugin",
+            "since": "4.11.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "serial",
+                    "description": "The certificate serial number, as a hex value",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "cn",
+                    "description": "The certificate CN",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provider",
+                    "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "changeServiceForSystemVm",
             "description": "Changes the service offering for a system vm (console proxy or secondary storage). The system vm must be in a \"Stopped\" state for this command to take effect.",
             "isasync": false,
-            "name": "changeServiceForSystemVm",
+            "related": "migrateSystemVm,startSystemVm",
             "params": [
                 {
-                    "description": "The ID of the system vm",
-                    "length": 255,
                     "name": "id",
-                    "related": "changeServiceForSystemVm,migrateSystemVm,startSystemVm",
+                    "description": "The ID of the system vm",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "changeServiceForSystemVm,migrateSystemVm,startSystemVm"
                 },
                 {
-                    "description": "the service offering ID to apply to the system vm",
-                    "length": 255,
                     "name": "serviceofferingid",
-                    "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
+                    "description": "the service offering ID to apply to the system vm",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateServiceOffering,createServiceOffering,listServiceOfferings"
                 },
                 {
-                    "description": "name value pairs of custom parameters for cpu, memory and cpunumber. example details[i].name=value",
-                    "length": 255,
                     "name": "details",
-                    "required": false,
-                    "type": "map"
+                    "description": "name value pairs of custom parameters for cpu, memory and cpunumber. example details[i].name=value",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "migrateSystemVm,startSystemVm",
             "response": [
                 {
-                    "description": "the Pod ID for the system VM",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the private IP address for the system VM",
-                    "name": "privateip",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the system VM",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the system VM",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the private MAC address for the system VM",
-                    "name": "privatemacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the system VM",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the system VM",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the system VM type",
-                    "name": "systemvmtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the system VM",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of active console sessions for the console proxy system vm",
-                    "name": "activeviewersessions",
-                    "type": "integer"
-                },
-                {
-                    "description": "the public IP address for the system VM",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the system VM",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the system VM",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the system VM",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the system VM",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the system VM",
                     "name": "zonename",
+                    "description": "the Zone name for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
+                    "name": "networkdomain",
+                    "description": "the network domain for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privateip",
+                    "description": "the private IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
+                    "type": "string"
+                },
+                {
                     "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
+                    "name": "id",
+                    "description": "the ID of the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID for the system VM",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the system VM was created",
                     "name": "created",
+                    "description": "the date and time the system VM was created",
                     "type": "date"
+                },
+                {
+                    "name": "systemvmtype",
+                    "description": "the system VM type",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
+                    "type": "integer"
+                },
+                {
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "enableNuageUnderlayVlanIpRange",
+            "description": "enable Nuage underlay on vlan ip range",
+            "since": "4.10",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "VLAN IP Range ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listVlanIpRanges,dedicatePublicIpRange,createVlanIpRange"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listIpForwardingRules",
             "description": "List the IP forwarding rules",
             "isasync": false,
-            "name": "listIpForwardingRules",
+            "related": "updatePortForwardingRule,listPortForwardingRules,createPortForwardingRule",
             "params": [
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list the rule belonging to this public IP address",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Lists rule with the specified ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listIpForwardingRules,updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Lists all rules applied to the specified VM.",
-                    "length": 255,
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "Lists all rules applied to the specified VM.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "list the rule belonging to this public IP address",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "Lists rule with the specified ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updatePortForwardingRule,listIpForwardingRules,listPortForwardingRules,createPortForwardingRule"
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updatePortForwardingRule,createPortForwardingRule,listPortForwardingRules",
             "response": [
                 {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
                     "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
                     "type": "string"
                 },
                 {
-                    "description": "is firewall for display to the regular user",
+                    "name": "privateport",
+                    "description": "the starting port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "publicendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the id of the guest network the port forwarding rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinename",
+                    "description": "the VM name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the public ip address for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "privateendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinedisplayname",
+                    "description": "the VM display name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the VM ID for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is firewall for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the VM display name for the port forwarding rule",
-                    "name": "virtualmachinedisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address for the port forwarding rule",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the port forwarding rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the VM ID for the port forwarding rule",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the port forwarding rule",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of port forwarding rule's private port range",
-                    "name": "privateport",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "privateendport",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the guest network the port forwarding rule belongs to",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the vm ip address for the port forwarding rule",
-                    "name": "vmguestip",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of port forwarding rule's public port range",
-                    "name": "publicport",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the port forwarding rule",
                     "name": "ipaddressid",
+                    "description": "the public ip address id for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the VM name for the port forwarding rule",
-                    "name": "virtualmachinename",
+                    "name": "vmguestip",
+                    "description": "the vm ip address for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "publicendport",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
+                    "name": "publicport",
+                    "description": "the starting port of port forwarding rule's public port range",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes a vmsnapshot.",
-            "isasync": true,
             "name": "deleteVMSnapshot",
+            "description": "Deletes a vmsnapshot.",
+            "since": "4.2.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "The ID of the VM snapshot",
-                    "length": 255,
                     "name": "vmsnapshotid",
-                    "related": "createVMSnapshot,listVMSnapshot",
+                    "description": "The ID of the VM snapshot",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listVMSnapshot,createVMSnapshot"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "createSnapshot",
             "description": "Creates an instant snapshot of a volume.",
             "isasync": true,
-            "name": "createSnapshot",
+            "related": "createSnapshotFromVMSnapshot,revertSnapshot",
             "params": [
                 {
-                    "description": "The account of the snapshot. The account parameter must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The domain ID of the snapshot. If used with the account parameter, specifies a domain for the account associated with the disk volume.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The ID of the disk volume",
-                    "length": 255,
-                    "name": "volumeid",
-                    "related": "listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the snapshot",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "quiesce vm if true",
-                    "length": 255,
                     "name": "quiescevm",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "quiesce vm if true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "policy id of the snapshot, if this is null, then use MANUAL_POLICY.",
+                    "name": "name",
+                    "description": "the name of the snapshot",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "asyncbackup",
+                    "description": "asynchronous backup if true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "policyid",
-                    "related": "updateSnapshotPolicy",
+                    "description": "policy id of the snapshot, if this is null, then use MANUAL_POLICY.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "updateSnapshotPolicy"
+                },
+                {
+                    "name": "domainid",
+                    "description": "The domain ID of the snapshot. If used with the account parameter, specifies a domain for the account associated with the disk volume.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "volumeid",
+                    "description": "The ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listVolumes,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "locationtype",
+                    "description": "Currently applicable only for managed storage. Valid location types: 'primary', 'secondary'. Default = 'primary'.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "The account of the snapshot. The account parameter must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "revertSnapshot",
             "response": [
                 {
-                    "description": "  the date the snapshot was created",
-                    "name": "created",
-                    "type": "date"
+                    "name": "volumeid",
+                    "description": "ID of the disk volume",
+                    "type": "string"
                 },
                 {
-                    "description": "the domain ID of the snapshot's account",
+                    "name": "account",
+                    "description": "the account associated with the snapshot",
+                    "type": "string"
+                },
+                {
                     "name": "domainid",
+                    "description": "the domain ID of the snapshot's account",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the snapshot's account",
-                    "name": "domain",
+                    "name": "project",
+                    "description": "the project name of the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "physical size of backedup snapshot on image store",
+                    "name": "volumetype",
+                    "description": "type of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the snapshot",
+                    "type": "string"
+                },
+                {
                     "name": "physicalsize",
+                    "description": "physical size of backedup snapshot on image store",
                     "type": "long"
                 },
                 {
-                    "description": "valid types are hourly, daily, weekly, monthy, template, and none.",
-                    "name": "intervaltype",
+                    "name": "virtualsize",
+                    "description": "virtual size of backedup snapshot on image store",
+                    "type": "long"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "id of the os on volume",
                     "type": "string"
                 },
                 {
-                    "description": "type of the disk volume",
-                    "name": "volumetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the snapshot",
                     "name": "projectid",
+                    "description": "the project id of the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the snapshot",
-                    "name": "account",
+                    "name": "domain",
+                    "description": "the domain name of the snapshot's account",
                     "type": "string"
                 },
                 {
-                    "description": "ID of the snapshot",
-                    "name": "id",
+                    "name": "snapshottype",
+                    "description": "the type of the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "name of the snapshot",
                     "name": "name",
+                    "description": "name of the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "id of the availability zone",
-                    "name": "zoneid",
+                    "name": "intervaltype",
+                    "description": "valid types are hourly, daily, weekly, monthy, template, and none.",
                     "type": "string"
                 },
                 {
-                    "description": "indicates whether the underlying storage supports reverting the volume to this snapshot",
                     "name": "revertable",
+                    "description": "indicates whether the underlying storage supports reverting the volume to this snapshot",
                     "type": "boolean"
                 },
                 {
-                    "description": "ID of the disk volume",
-                    "name": "volumeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with snapshot",
                     "name": "tags",
+                    "description": "the list of resource tags associated with snapshot",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
                             "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the type of the snapshot",
-                    "name": "snapshottype",
+                    "name": "locationtype",
+                    "description": "valid location types are primary and secondary.",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage",
-                    "name": "state",
-                    "type": "state"
-                },
-                {
-                    "description": "the project name of the snapshot",
-                    "name": "project",
+                    "name": "zoneid",
+                    "description": "id of the availability zone",
                     "type": "string"
                 },
                 {
-                    "description": "name of the disk volume",
                     "name": "volumename",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists storage pool metrics",
-            "isasync": false,
-            "name": "listStoragePoolsMetrics",
-            "params": [
-                {
-                    "description": "the ID of the storage pool",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the IP address for the storage pool",
-                    "length": 255,
-                    "name": "ipaddress",
-                    "required": false,
+                    "description": "name of the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the storage pool",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool path",
-                    "length": 255,
-                    "name": "path",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "length": 255,
-                    "name": "scope",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list storage pools belongig to the specific cluster",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster,updateCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the storage pool",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the Pod ID for the storage pool",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "storage usage disable threshold exceeded",
-                    "name": "storageusagedisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "storage usage notification threshold exceeded",
-                    "name": "storageusagethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "storage allocated disable threshold exceeded",
-                    "name": "storageallocateddisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "disk size in GiB",
-                    "name": "disksizetotalgb",
-                    "type": "string"
-                },
-                {
-                    "description": "disk size allocated in GiB",
-                    "name": "disksizeallocatedgb",
-                    "type": "string"
-                },
-                {
-                    "description": "storage allocated notification threshold exceeded",
-                    "name": "storageallocatedthreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "disk size used in GiB",
-                    "name": "disksizeusedgb",
-                    "type": "string"
-                },
-                {
-                    "description": "disk size unallocated in GiB",
-                    "name": "disksizeunallocatedgb",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.3"
-        },
-        {
-            "description": "Starts a router.",
-            "isasync": true,
-            "name": "rebootRouter",
-            "params": [
-                {
-                    "description": "the ID of the router",
-                    "length": 255,
-                    "name": "id",
-                    "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,rebootRouter,destroyRouter,listRouters",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,destroyRouter,listRouters",
-            "response": [
-                {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the router",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the router",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding guest network",
-                    "name": "guestnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
-                    "name": "scriptsversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the router",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of template",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the second IPv6 DNS for the router",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the router template requires upgrader",
-                    "name": "requiresupgrade",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the router was created",
                     "name": "created",
+                    "description": "  the date the snapshot was created",
                     "type": "date"
                 },
                 {
-                    "description": "the ID of the corresponding link local network",
-                    "name": "linklocalnetworkid",
+                    "name": "osdisplayname",
+                    "description": "display name of the os on volume",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the router",
                     "name": "state",
+                    "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage",
                     "type": "state"
+                }
+            ]
+        },
+        {
+            "name": "listStoragePoolsMetrics",
+            "description": "Lists storage pool metrics",
+            "since": "4.9.3",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address for the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "clusterid",
+                    "description": "list storage pools belongig to the specific cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,updateCluster"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "path",
+                    "description": "the storage pool path",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "scope",
+                    "description": "the ID of the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "disksizetotalgb",
+                    "description": "disk size in GiB",
                     "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with the router",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
+                    "name": "disksizeallocatedgb",
+                    "description": "disk size allocated in GiB",
+                    "type": "string"
                 },
                 {
-                    "description": "the account associated with the router",
-                    "name": "account",
+                    "name": "storageusagedisablethreshold",
+                    "description": "storage usage disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "storageallocatedthreshold",
+                    "description": "storage allocated notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "storageusagethreshold",
+                    "description": "storage usage notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "storageallocateddisablethreshold",
+                    "description": "storage allocated disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "disksizeusedgb",
+                    "description": "disk size used in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizeunallocatedgb",
+                    "description": "disk size unallocated in GiB",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listNics",
             "description": "list the vm nics  IP to NIC",
             "isasync": false,
-            "name": "listNics",
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the vm",
-                    "length": 255,
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "the ID of the vm",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "list nic of the specific vm's network",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ID of the nic to to list IPs",
-                    "length": 255,
                     "name": "nicid",
-                    "related": "listNics",
+                    "description": "the ID of the nic to to list IPs",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listNics"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "list nic of the specific vm's network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the name of the corresponding network",
-                    "name": "networkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the isolation uri of the nic",
-                    "name": "isolationuri",
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the nic",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the broadcast uri of the nic",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "Id of the vm to which the nic belongs",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of the nic",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the nic",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                    "name": "nsxlogicalswitch",
-                    "type": "string"
-                },
-                {
-                    "description": "device id for the network when plugged into the virtual machine",
-                    "name": "deviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if nic is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if nic is default, false otherwise",
-                    "name": "macaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                    "name": "nsxlogicalswitchport",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding network",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ip address of the nic",
                     "name": "ipaddress",
+                    "description": "the ip address of the nic",
                     "type": "string"
                 },
                 {
-                    "description": "the traffic type of the nic",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the Secondary ipv4 addr of nic",
                     "name": "secondaryip",
+                    "description": "the Secondary ipv4 addr of nic",
                     "type": "list"
                 },
                 {
-                    "description": "the ID of the nic",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the IPv6 address of network",
                     "name": "ip6address",
+                    "description": "the IPv6 address of network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the ID of the corresponding network",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the nic",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if nic is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "nsxlogicalswitchport",
+                    "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                    "type": "string"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "device id for the network when plugged into the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the nic",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "Id of the vm to which the nic belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the nic",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the nic",
+                    "type": "string"
+                },
+                {
+                    "name": "networkname",
+                    "description": "the name of the corresponding network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcasturi",
+                    "description": "the broadcast uri of the nic",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "isolationuri",
+                    "description": "the isolation uri of the nic",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the nic",
+                    "type": "string"
+                },
+                {
+                    "name": "nsxlogicalswitch",
+                    "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                    "type": "string"
+                },
+                {
+                    "name": "macaddress",
+                    "description": "true if nic is default, false otherwise",
+                    "type": "string"
+                },
+                {
+                    "name": "extradhcpoption",
+                    "description": "the extra dhcp options on the nic",
+                    "type": "list"
+                }
+            ]
+        },
+        {
+            "name": "rebootRouter",
+            "description": "Starts a router.",
+            "isasync": true,
+            "related": "changeServiceForRouter,stopInternalLoadBalancerVM,listRouters,destroyRouter,listInternalLoadBalancerVMs",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the router",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "changeServiceForRouter,stopInternalLoadBalancerVM,listRouters,destroyRouter,rebootRouter,listInternalLoadBalancerVMs"
+                }
+            ],
+            "response": [
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the router",
+                    "type": "state"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the router was created",
+                    "type": "date"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createSSHKeyPair",
             "description": "Create a new keypair and returns the private key",
             "isasync": false,
-            "name": "createSSHKeyPair",
+            "related": "",
             "params": [
                 {
-                    "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Name of the keypair",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional project for the ssh key",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional account for the ssh key. Must be used with domainId.",
-                    "length": 255,
                     "name": "account",
+                    "description": "an optional account for the ssh key. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "an optional project for the ssh key",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "name",
+                    "description": "Name of the keypair",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Private key",
                     "name": "privatekey",
+                    "description": "Private key",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Authorizes a particular egress rule for this security group",
+            "name": "createSnapshotFromVMSnapshot",
+            "description": "Creates an instant snapshot of a volume from existing vm snapshot.",
+            "since": "4.10.0",
             "isasync": true,
-            "name": "authorizeSecurityGroupEgress",
+            "related": "revertSnapshot",
             "params": [
                 {
-                    "description": "The name of the security group. Mutually exclusive with securityGroupId parameter",
+                    "name": "name",
+                    "description": "the name of the snapshot",
+                    "type": "string",
                     "length": 255,
-                    "name": "securitygroupname",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "end port for this egress rule",
+                    "name": "vmsnapshotid",
+                    "description": "The ID of the VM snapshot",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "endport",
-                    "required": false,
-                    "type": "integer"
+                    "required": true,
+                    "related": "listVMSnapshot,createVMSnapshot"
                 },
                 {
-                    "description": "the cidr list associated",
+                    "name": "volumeid",
+                    "description": "The ID of the disk volume",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "user to security group mapping",
-                    "length": 255,
-                    "name": "usersecuritygrouplist",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "TCP is default. UDP is the other supported protocol",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "length": 255,
-                    "name": "icmptype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter",
-                    "length": 255,
-                    "name": "securitygroupid",
-                    "related": "createSecurityGroup",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "length": 255,
-                    "name": "icmpcode",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional project of the security group",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional account for the security group. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "start port for this egress rule",
-                    "length": 255,
-                    "name": "startport",
-                    "required": false,
-                    "type": "integer"
+                    "required": true,
+                    "related": "listVolumes,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
                 }
             ],
-            "related": "authorizeSecurityGroupIngress",
             "response": [
                 {
-                    "description": "the protocol of the security group rule",
-                    "name": "protocol",
+                    "name": "ostypeid",
+                    "description": "id of the os on volume",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the security group rule",
-                    "name": "ruleid",
+                    "name": "virtualsize",
+                    "description": "virtual size of backedup snapshot on image store",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the type of the ICMP message response",
-                    "name": "icmptype",
-                    "type": "integer"
+                    "name": "physicalsize",
+                    "description": "physical size of backedup snapshot on image store",
+                    "type": "long"
                 },
                 {
-                    "description": "the code for the ICMP message response",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "security group name",
-                    "name": "securitygroupname",
-                    "type": "string"
-                },
-                {
-                    "description": "the CIDR notation for the base IP address of the security group rule",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "account owning the security group rule",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the rule",
                     "name": "tags",
+                    "description": "the list of resource tags associated with snapshot",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
                             "name": "customer",
+                            "description": "customer associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "id of the resource",
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
                             "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the starting IP of the security group rule",
-                    "name": "startport",
-                    "type": "integer"
+                    "name": "volumetype",
+                    "description": "type of the disk volume",
+                    "type": "string"
                 },
                 {
-                    "description": "the ending IP of the security group rule ",
-                    "name": "endport",
-                    "type": "integer"
+                    "name": "projectid",
+                    "description": "the project id of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the snapshot's account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottype",
+                    "description": "the type of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "  the date the snapshot was created",
+                    "type": "date"
+                },
+                {
+                    "name": "intervaltype",
+                    "description": "valid types are hourly, daily, weekly, monthy, template, and none.",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "id of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "display name of the os on volume",
+                    "type": "string"
+                },
+                {
+                    "name": "volumename",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeid",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the snapshot's account",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "revertable",
+                    "description": "indicates whether the underlying storage supports reverting the volume to this snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage",
+                    "type": "state"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "locationtype",
+                    "description": "valid location types are primary and secondary.",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the snapshot",
+                    "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "authorizeSecurityGroupEgress",
+            "description": "Authorizes a particular egress rule for this security group",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "authorizeSecurityGroupIngress",
+            "params": [
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list associated",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "securitygroupname",
+                    "description": "The name of the security group. Mutually exclusive with securityGroupId parameter",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "startport",
+                    "description": "start port for this egress rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account for the security group. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "usersecuritygrouplist",
+                    "description": "user to security group mapping",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "securitygroupid",
+                    "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createSecurityGroup"
+                },
+                {
+                    "name": "endport",
+                    "description": "end port for this egress rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "protocol",
+                    "description": "TCP is default. UDP is the other supported protocol",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "an optional project of the security group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "icmpcode",
+                    "description": "the code for the ICMP message response",
+                    "type": "integer"
+                },
+                {
+                    "name": "securitygroupname",
+                    "description": "security group name",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "account owning the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "ruleid",
+                    "description": "the id of the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting IP of the security group rule",
+                    "type": "integer"
+                },
+                {
+                    "name": "cidr",
+                    "description": "the CIDR notation for the base IP address of the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "the type of the ICMP message response",
+                    "type": "integer"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending IP of the security group rule ",
+                    "type": "integer"
+                }
+            ]
+        },
+        {
+            "name": "listStoragePools",
             "description": "Lists storage pools.",
             "isasync": false,
-            "name": "listStoragePools",
+            "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list storage pools belongig to the specific cluster",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster,updateCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the storage pool",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "length": 255,
-                    "name": "scope",
-                    "related": "createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the storage pool",
-                    "length": 255,
                     "name": "podid",
-                    "related": "updatePod",
+                    "description": "the Pod ID for the storage pool",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createManagementNetworkIpRange,updatePod"
                 },
                 {
-                    "description": "the Zone ID for the storage pool",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "the IP address for the storage pool",
+                    "name": "name",
+                    "description": "the name of the storage pool",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "ipaddress",
-                    "required": false,
-                    "type": "string"
+                    "description": "the IP address for the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the storage pool path",
+                    "name": "zoneid",
+                    "description": "the Zone ID for the storage pool",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "path",
                     "required": false,
-                    "type": "string"
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "scope",
+                    "description": "the ID of the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,listStoragePools,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "list storage pools belongig to the specific cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,updateCluster"
+                },
+                {
+                    "name": "path",
+                    "description": "the storage pool path",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
             "response": [
                 {
-                    "description": "the storage pool path",
-                    "name": "path",
+                    "name": "provider",
+                    "description": "Storage provider for this pool",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the storage pool was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the scope of the storage pool",
-                    "name": "scope",
+                    "name": "name",
+                    "description": "the name of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the storage pool",
-                    "name": "id",
+                    "name": "clustername",
+                    "description": "the name of the cluster for the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod name of the storage pool",
-                    "name": "podname",
+                    "name": "ipaddress",
+                    "description": "the IP address of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the tags for the storage pool",
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizeused",
+                    "description": "the host's currently used disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster for the storage pool",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the tags for the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the storage pool",
-                    "name": "state",
-                    "type": "storagepoolstatus"
-                },
-                {
-                    "description": "the overprovisionfactor for the storage pool",
                     "name": "overprovisionfactor",
+                    "description": "the overprovisionfactor for the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
                     "name": "suitableformigration",
+                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the storage pool capabilities",
+                    "name": "allocatediops",
+                    "description": "total min IOPS currently in use by volumes",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor type of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the storage pool",
+                    "type": "storagepoolstatus"
+                },
+                {
                     "name": "storagecapabilities",
+                    "description": "the storage pool capabilities",
                     "type": "map"
                 },
                 {
-                    "description": "the Zone name of the storage pool",
-                    "name": "zonename",
+                    "name": "path",
+                    "description": "the storage pool path",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod ID of the storage pool",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "IOPS CloudStack can provision from this storage pool",
-                    "name": "capacityiops",
-                    "type": "long"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the Zone ID of the storage pool",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the storage pool",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool type",
                     "name": "type",
+                    "description": "the storage pool type",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the cluster for the storage pool",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the cluster for the storage pool",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor type of the storage pool",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the storage pool",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the storage pool",
-                    "name": "disksizetotal",
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
                     "type": "long"
                 },
                 {
-                    "description": "the host's currently used disk size",
-                    "name": "disksizeused",
-                    "type": "long"
+                    "name": "zonename",
+                    "description": "the Zone name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the storage pool was created",
+                    "type": "date"
                 }
             ]
         },
         {
+            "name": "findHostsForMigration",
             "description": "Find hosts suitable for migrating a virtual machine.",
             "isasync": false,
-            "name": "findHostsForMigration",
+            "related": "",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "find hosts to which this VM can be migrated and flag the hosts with enough CPU/RAM to host the VM",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "find hosts to which this VM can be migrated and flag the hosts with enough CPU/RAM to host the VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
+                    "name": "zoneid",
+                    "description": "the Zone ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "true if migrating a vm to this host requires storage motion, false otherwise",
-                    "name": "requiresStorageMotion",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the host hypervisor",
                     "name": "hypervisor",
+                    "description": "the host hypervisor",
                     "type": "hypervisortype"
                 },
                 {
-                    "description": "the amount of the host's CPU currently used",
+                    "name": "averageload",
+                    "description": "the cpu average load on the host",
+                    "type": "long"
+                },
+                {
                     "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
-                    "type": "long"
+                    "name": "oscategoryname",
+                    "description": "the OS category name of the host",
+                    "type": "string"
                 },
                 {
-                    "description": "the host's currently allocated disk size",
+                    "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "requiresStorageMotion",
+                    "description": "true if migrating a vm to this host requires storage motion, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
+                    "type": "string"
+                },
+                {
                     "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
                     "type": "long"
                 },
                 {
-                    "description": "the ID of the host",
-                    "name": "id",
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor ",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
+                    "name": "clusterid",
+                    "description": "the cluster ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the host version",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "the resource state of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
                     "type": "date"
                 },
                 {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
+                    "name": "events",
+                    "description": "events available for the host",
                     "type": "string"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
                     "type": "long"
                 },
                 {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the host type",
-                    "name": "type",
-                    "type": "type"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the state of the host",
                     "name": "state",
+                    "description": "the state of the host",
                     "type": "status"
                 },
                 {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
+                    "name": "created",
+                    "description": "the date and time the host was created",
                     "type": "date"
                 },
                 {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
                     "type": "string"
                 },
                 {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "events available for the host",
-                    "name": "events",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
+                    "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
+                    "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "capabilities",
+                    "description": "capabilities of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "type"
+                },
+                {
+                    "name": "managementserverid",
+                    "description": "the management server ID of the host",
                     "type": "long"
                 },
                 {
-                    "description": "the amount of the host's memory currently used",
                     "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
                     "type": "long"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates a hypervisor capabilities.",
-            "isasync": false,
             "name": "updateHypervisorCapabilities",
+            "description": "Updates a hypervisor capabilities.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "listHypervisorCapabilities",
             "params": [
                 {
-                    "description": "the max number of Guest VMs per host for this hypervisor.",
-                    "length": 255,
-                    "name": "maxguestslimit",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "set true to enable security group for this hypervisor.",
-                    "length": 255,
                     "name": "securitygroupenabled",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "set true to enable security group for this hypervisor.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "ID of the hypervisor capability",
-                    "length": 255,
                     "name": "id",
-                    "related": "listHypervisorCapabilities,updateHypervisorCapabilities",
+                    "description": "ID of the hypervisor capability",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listHypervisorCapabilities,updateHypervisorCapabilities"
+                },
+                {
+                    "name": "maxguestslimit",
+                    "description": "the max number of Guest VMs per host for this hypervisor.",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listHypervisorCapabilities",
             "response": [
                 {
-                    "description": "true if security group is supported",
-                    "name": "securitygroupenabled",
-                    "type": "boolean"
+                    "name": "id",
+                    "description": "the ID of the hypervisor capabilities row",
+                    "type": "string"
                 },
                 {
-                    "description": "the maximum number of Data Volumes that can be attached for this hypervisor",
-                    "name": "maxdatavolumeslimit",
-                    "type": "integer"
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
                 },
                 {
-                    "description": "the maximum number of guest vms recommended for this hypervisor",
                     "name": "maxguestslimit",
+                    "description": "the maximum number of guest vms recommended for this hypervisor",
                     "type": "long"
                 },
                 {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the hypervisor capabilities row",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the maximum number of Hosts per cluster for this hypervisor",
-                    "name": "maxhostspercluster",
-                    "type": "integer"
-                },
-                {
-                    "description": "the hypervisor type",
                     "name": "hypervisor",
+                    "description": "the hypervisor type",
                     "type": "hypervisortype"
                 },
                 {
-                    "description": "true if storage motion is supported",
+                    "name": "maxdatavolumeslimit",
+                    "description": "the maximum number of Data Volumes that can be attached for this hypervisor",
+                    "type": "integer"
+                },
+                {
+                    "name": "securitygroupenabled",
+                    "description": "true if security group is supported",
+                    "type": "boolean"
+                },
+                {
+                    "name": "maxhostspercluster",
+                    "description": "the maximum number of Hosts per cluster for this hypervisor",
+                    "type": "integer"
+                },
+                {
                     "name": "storagemotionenabled",
+                    "description": "true if storage motion is supported",
                     "type": "boolean"
                 }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Enable a Cisco Nexus VSM device",
-            "isasync": true,
-            "name": "enableCiscoNexusVSM",
-            "params": [
-                {
-                    "description": "Id of the Cisco Nexus 1000v VSM device to be enabled",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listCiscoNexusVSMs,disableCiscoNexusVSM,enableCiscoNexusVSM",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listCiscoNexusVSMs,disableCiscoNexusVSM",
-            "response": [
-                {
-                    "description": "The Config State (Primary/Standby) of the VSM",
-                    "name": "vsmconfigstate",
-                    "type": "string"
-                },
-                {
-                    "description": "control vlan id of the VSM",
-                    "name": "vsmctrlvlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "management vlan id of the VSM",
-                    "name": "vsmmgmtvlanid",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "vsmdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "The VSM is a switch supervisor. This is the VSM's switch domain id",
-                    "name": "vsmdomainid",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "vsmdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "storage vlan id of the VSM",
-                    "name": "vsmstoragevlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "The Device State (Enabled/Disabled) of the VSM",
-                    "name": "vsmdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "packet vlan id of the VSM",
-                    "name": "vsmpktvlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "The mode of the VSM (standalone/HA)",
-                    "name": "vsmconfigmode",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the Cisco N1KV VSM device",
-                    "name": "vsmdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external Cisco Nexus 1000v Virtual Supervisor Module",
-                    "name": "ipaddress",
-                    "type": "string"
-                }
             ]
         },
         {
-            "description": "Dedicates a guest vlan range to an account",
-            "isasync": false,
-            "name": "dedicateGuestVlanRange",
-            "params": [
-                {
-                    "description": "domain ID of the account owning a VLAN",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "physical network ID of the vlan",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "account who will own the VLAN",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "guest vlan range to be dedicated",
-                    "length": 255,
-                    "name": "vlanrange",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "project who will own the VLAN",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listDedicatedGuestVlanRanges",
-            "response": [
-                {
-                    "description": "the guest VLAN range",
-                    "name": "guestvlanrange",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the guest vlan range",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the guest VLAN range",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the guest VLAN range",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the guest VLAN range",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the guest VLAN range",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the guest vlan range",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone of the guest vlan range",
-                    "name": "zoneid",
-                    "type": "long"
-                },
-                {
-                    "description": "the physical network of the guest vlan range",
-                    "name": "physicalnetworkid",
-                    "type": "long"
-                }
-            ]
-        },
-        {
+            "name": "addNicToVirtualMachine",
             "description": "Adds VM to specified network by creating a NIC",
             "isasync": true,
-            "name": "addNicToVirtualMachine",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "IP Address for the new network",
-                    "length": 255,
-                    "name": "ipaddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Network ID",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Virtual Machine ID",
-                    "length": 255,
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,addNicToVirtualMachine,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "Virtual Machine ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "networkid",
+                    "description": "Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "dhcpoptions",
+                    "description": "DHCP options which are passed to the nic Example: dhcpoptions[0].dhcp:114=url&dhcpoptions[0].dhcp:66=www.test.com",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "IP Address for the new network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "macaddress",
+                    "description": "Mac Address for the new network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "type": "string"
                 },
                 {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the group name of the virtual machine",
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "group",
+                    "description": "the group name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the availability zone for the virtual machine",
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
                     "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        }
+                    ]
                 },
                 {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
 
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
                     "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
+                    "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
                     "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
                             "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
                             "response": [
                                 {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
                                     "name": "key",
+                                    "description": "tag key name",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
                                     "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the domain associated with the tag",
                                     "name": "domain",
+                                    "description": "the domain associated with the tag",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "resource type",
                                     "name": "resourcetype",
+                                    "description": "resource type",
                                     "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
+                                },
                                 {
-                                    "description": "account owning the security group rule",
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "account",
+                                    "description": "the account associated with the tag",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
                                     "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
                                 }
-                            ],
-                            "type": "set"
+                            ]
                         },
                         {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
                         },
                         {
-                            "description": "the list of egress rules associated with the security group",
                             "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
                             "response": [
                                 {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the list of resource tags associated with the rule",
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
                                     "response": [
                                         {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
                                             "name": "resourcetype",
+                                            "description": "resource type",
                                             "type": "string"
                                         },
                                         {
-                                            "description": "tag value",
-                                            "name": "value",
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
                                             "type": "string"
                                         },
                                         {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
                                             "type": "string"
                                         },
                                         {
-                                            "description": "the project id the tag belongs to",
                                             "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
                                             "type": "string"
                                         }
-                                    ],
-                                    "type": "set"
+                                    ]
                                 },
                                 {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
                                     "name": "account",
+                                    "description": "account owning the security group rule",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
                                     "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
                                 }
-                            ],
-                            "type": "set"
+                            ]
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
                             "name": "id",
+                            "description": "the ID of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
+                            "name": "name",
+                            "description": "the name of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
+                            "name": "projectid",
+                            "description": "the project id of the group",
                             "type": "string"
                         },
                         {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
+                            "name": "description",
+                            "description": "the description of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                }
+                            ]
                         },
                         {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
                         },
                         {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the incoming network traffic on the vm",
                     "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
                     "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
                     "type": "long"
                 },
                 {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
                     "name": "project",
+                    "description": "the project name of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "dedicateGuestVlanRange",
+            "description": "Dedicates a guest vlan range to an account",
+            "isasync": false,
+            "related": "listDedicatedGuestVlanRanges",
+            "params": [
+                {
+                    "name": "vlanrange",
+                    "description": "guest vlan range to be dedicated",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "physical network ID of the vlan",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "domainid",
+                    "description": "domain ID of the account owning a VLAN",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "project who will own the VLAN",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "account",
+                    "description": "account who will own the VLAN",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain name of the guest VLAN range",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network of the guest vlan range",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone of the guest vlan range",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the guest VLAN range",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the guest VLAN range",
+                    "type": "string"
+                },
+                {
+                    "name": "guestvlanrange",
+                    "description": "the guest VLAN range",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the guest VLAN range",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listStaticRoutes",
             "description": "Lists all static routes",
             "isasync": false,
-            "name": "listStaticRoutes",
+            "related": "",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list static routes by gateway id",
-                    "length": 255,
-                    "name": "gatewayid",
-                    "related": "createPrivateGateway",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list static route by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listStaticRoutes",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list static routes by vpc id",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
                     "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "gatewayid",
+                    "description": "list static routes by gateway id",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "listall",
                     "required": false,
-                    "type": "boolean"
+                    "related": "createPrivateGateway"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "list static routes by vpc id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list static route by id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listStaticRoutes"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the project name of the static route",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the static route",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the static route belongs to",
                     "name": "vpcid",
+                    "description": "VPC the static route belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with static route",
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "gatewayid",
+                    "description": "VPC gateway the route is created for",
+                    "type": "string"
+                },
+                {
+                    "name": "cidr",
+                    "description": "static route CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of static route",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the static route",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the static route",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with static route",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
                             "name": "value",
+                            "description": "tag value",
                             "type": "string"
                         },
                         {
-                            "description": "the project name where tag belongs to",
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
                             "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "VPC gateway the route is created for",
-                    "name": "gatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the static route",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "static route CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the static route",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the static route",
                     "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of static route",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the static route",
-                    "name": "domain",
+                    "description": "the account associated with the static route",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "lists F5 load balancer devices",
-            "isasync": false,
-            "name": "listF5LoadBalancers",
-            "params": [
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "f5 load balancer device ID",
-                    "length": 255,
-                    "name": "lbdeviceid",
-                    "related": "listF5LoadBalancers,addF5LoadBalancer",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "addF5LoadBalancer",
-            "response": [
-                {
-                    "description": "the physical network to which this F5 device belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "lbdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the load balancer",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "lbdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "true if device is dedicated for an account",
-                    "name": "lbdevicededicated",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device capacity",
-                    "name": "lbdevicecapacity",
-                    "type": "long"
-                },
-                {
-                    "description": "device id of the F5 load balancer",
-                    "name": "lbdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the load balancer",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external load balancer",
-                    "name": "ipaddress",
-                    "type": "string"
-                }
-            ]
-        },
-        {
+            "name": "listPublicIpAddresses",
             "description": "Lists all public ip addresses",
             "isasync": false,
-            "name": "listPublicIpAddresses",
+            "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,restartNetwork,associateIpAddress",
             "params": [
                 {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists all public IP addresses by state",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only static NAT IP addresses",
-                    "length": 255,
-                    "name": "isstaticnat",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists the specified IP address",
-                    "length": 255,
-                    "name": "ipaddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists all public IP addresses by zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "limits search results to allocated public IP addresses",
-                    "length": 255,
-                    "name": "allocatedonly",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists IP address by ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "lists all public IP addresses associated to the network specified",
-                    "length": 255,
-                    "name": "associatednetworkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List IPs belonging to the VPC",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "list only source NAT IP addresses",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "issourcenat",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "list only IPs used for load balancing",
-                    "length": 255,
-                    "name": "forloadbalancing",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
+                    "name": "vlanid",
                     "description": "lists all public IP addresses by VLAN ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "vlanid",
-                    "related": "createVlanIpRange,listVlanIpRanges,dedicatePublicIpRange",
                     "required": false,
-                    "type": "uuid"
+                    "related": "listVlanIpRanges,dedicatePublicIpRange,createVlanIpRange"
                 },
                 {
-                    "description": "the virtual network for the IP address",
-                    "length": 255,
-                    "name": "forvirtualnetwork",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists all public IP addresses by physical network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses",
-            "response": [
-                {
-                    "description": "the name of the zone the public IP address belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone the public IP address belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "is public ip for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "virutal machine (dnat) ip address (not null only for static nat Ip)",
-                    "name": "vmipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
-                    "name": "purpose",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "date the public IP address was acquired",
-                    "name": "allocated",
-                    "type": "date"
-                },
-                {
-                    "description": "public IP address id",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "is public IP portable across the zones",
-                    "name": "isportable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account the public IP address is associated with",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Network associated with the IP address",
-                    "name": "associatednetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the ip belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the Network associated with the IP address",
-                    "name": "associatednetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
                     "name": "state",
-                    "type": "string"
+                    "description": "lists all public IP addresses by state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the VLAN associated with the IP address",
-                    "name": "vlanname",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the IP address is a source nat address, false otherwise",
-                    "name": "issourcenat",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
-                    "name": "vlanid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID the public IP address is associated with",
                     "name": "domainid",
-                    "type": "string"
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
                 },
                 {
-                    "description": "the ID of the Network where ip belongs to",
-                    "name": "networkid",
-                    "type": "string"
+                    "name": "associatednetworkid",
+                    "description": "lists all public IP addresses associated to the network specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
                 },
                 {
-                    "description": "the project id of the ipaddress",
                     "name": "projectid",
-                    "type": "string"
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
                 },
                 {
-                    "description": "true if this ip is for static nat, false otherwise",
-                    "name": "isstaticnat",
-                    "type": "boolean"
+                    "name": "vpcid",
+                    "description": "List IPs belonging to the VPC",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
                 },
                 {
-                    "description": "virutal machine display name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinedisplayname",
-                    "type": "string"
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the list of resource tags associated with ip address",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the domain the public IP address is associated with",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the IP address",
                     "name": "forvirtualnetwork",
-                    "type": "boolean"
+                    "description": "the virtual network for the IP address",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "virutal machine id the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists F5 external load balancer appliances added in a zone.",
-            "isasync": false,
-            "name": "listExternalLoadBalancers",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "zone Id",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "lists all public IP addresses by zone ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "forloadbalancing",
+                    "description": "list only IPs used for load balancing",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "lists all public IP addresses by physical network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "lists the specified IP address",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "issourcenat",
+                    "description": "list only source NAT IP addresses",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isstaticnat",
+                    "description": "list only static NAT IP addresses",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "allocatedonly",
+                    "description": "limits search results to allocated public IP addresses",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "lists IP address by ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
             "response": [
                 {
-                    "description": "events available for the host",
-                    "name": "events",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
+                    "name": "allocated",
+                    "description": "date the public IP address was acquired",
                     "type": "date"
                 },
                 {
-                    "description": "the amount of the host's CPU currently used",
-                    "name": "cpuused",
+                    "name": "vlanname",
+                    "description": "the VLAN associated with the IP address",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host",
-                    "name": "name",
+                    "name": "virtualmachinedisplayname",
+                    "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)",
                     "type": "string"
                 },
                 {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
-                    "type": "long"
-                },
-                {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
+                    "name": "account",
+                    "description": "the account the public IP address is associated with",
                     "type": "string"
                 },
                 {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
+                    "name": "networkid",
+                    "description": "the ID of the Network where ip belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
+                    "name": "ipaddress",
+                    "description": "public IP address",
                     "type": "string"
                 },
                 {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
+                    "name": "domain",
+                    "description": "the domain the public IP address is associated with",
                     "type": "string"
                 },
                 {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
+                    "name": "id",
+                    "description": "public IP address id",
                     "type": "string"
                 },
                 {
-                    "description": "the host version",
-                    "name": "version",
+                    "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the host",
+                    "name": "isstaticnat",
+                    "description": "true if this ip is for static nat, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "associatednetworkname",
+                    "description": "the name of the Network associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "isportable",
+                    "description": "is public IP portable across the zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the ip belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vmipaddress",
+                    "description": "virtual machine (dnat) ip address (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "virtual machine id the ip address is assigned to (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
                     "name": "state",
-                    "type": "status"
-                },
-                {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
+                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
                     "type": "string"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
+                    "name": "zoneid",
+                    "description": "the ID of the zone the public IP address belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
-                    "type": "string"
+                    "name": "issourcenat",
+                    "description": "true if the IP address is a source nat address, false otherwise",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the amount of the host's memory currently used",
-                    "name": "memoryused",
-                    "type": "long"
-                },
-                {
-                    "description": "the host out-of-band management information",
-                    "name": "outofbandmanagement",
-                    "type": "outofbandmanagementresponse"
-                },
-                {
-                    "description": "GPU cards present in the host",
-                    "name": "gpugroup",
+                    "name": "tags",
+                    "description": "the list of resource tags associated with ip address",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the list of enabled vGPUs",
-                            "name": "vgpu",
-                            "response": [
-                                {
-                                    "description": "Video RAM for this vGPU type",
-                                    "name": "videoram",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum Y resolution per display",
-                                    "name": "maxresolutiony",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
-                                    "name": "remainingcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
-                                    "name": "maxcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Model Name of vGPU",
-                                    "name": "vgputype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
-                                    "name": "maxvgpuperpgpu",
-                                    "type": "long"
-                                }
-                            ],
-                            "type": "list"
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
                         },
                         {
-                            "description": "GPU cards present in the host",
-                            "name": "gpugroupname",
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
-                    "name": "suitableformigration",
+                    "name": "virtualmachinename",
+                    "description": "virtual machine name the ip address is assigned to (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the IP address",
                     "type": "boolean"
                 },
                 {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
+                    "name": "zonename",
+                    "description": "the name of the zone the public IP address belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is public ip for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the host type",
-                    "name": "type",
-                    "type": "type"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
+                    "name": "vlanid",
+                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
                     "type": "string"
                 },
                 {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
+                    "name": "domainid",
+                    "description": "the domain ID the public IP address is associated with",
                     "type": "string"
                 },
                 {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "id",
+                    "name": "purpose",
+                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
+                    "name": "associatednetworkid",
+                    "description": "the ID of the Network associated with the IP address",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateIso",
             "description": "Updates an ISO file.",
             "isasync": false,
-            "name": "updateIso",
+            "related": "createTemplate,registerIso,updateTemplate,listIsos,listIsos,registerTemplate,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "true if the template type is routing i.e., if template is used to deploy router",
-                    "length": 255,
                     "name": "isrouting",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template requres HVM, false otherwise; available only for updateTemplate API",
+                    "description": "true if the template type is routing i.e., if template is used to deploy router",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "requireshvm",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the format for the image",
-                    "length": 255,
-                    "name": "format",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the image file",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "length": 255,
-                    "name": "isdynamicallyscalable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the image file",
-                    "length": 255,
-                    "name": "id",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,updateIso,listIsos,updateTemplate,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the display text of the image",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "sort key of the template, integer",
-                    "length": 255,
-                    "name": "sortkey",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the OS type that best represents the OS of this image.",
-                    "length": 255,
                     "name": "ostypeid",
-                    "related": "addGuestOs,listOsTypes",
+                    "description": "the ID of the OS type that best represents the OS of this image.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listOsTypes,addGuestOs"
                 },
                 {
-                    "description": "true if the image supports the password reset feature; default is false",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "requireshvm",
+                    "description": "true if the template requres HVM, false otherwise; available only for updateTemplate API",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image file",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "passwordenabled",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if the image supports the password reset feature; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "true if image is bootable, false otherwise; available only for updateIso API",
+                    "name": "id",
+                    "description": "the ID of the image file",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "createTemplate,registerIso,updateTemplate,updateIso,listIsos,listIsos,registerTemplate,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "cleanupdetails",
+                    "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the image",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                },
+                {
                     "name": "bootable",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if image is bootable, false otherwise; available only for updateIso API",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "details",
+                    "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sortkey",
+                    "description": "sort key of the template, integer",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "format",
+                    "description": "the format for the image",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,listIsos,updateTemplate,createTemplate,copyIso",
             "response": [
                 {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
                     "type": "string"
                 },
                 {
-                    "description": "the template name",
-                    "name": "name",
+                    "name": "projectid",
+                    "description": "the project id of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the template",
-                    "name": "project",
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
                     "type": "string"
                 },
                 {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this template was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the size of the template",
-                    "name": "size",
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
                     "type": "long"
                 },
                 {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
                     "type": "boolean"
                 },
                 {
-                    "description": "additional key/value details tied with template",
-                    "name": "details",
-                    "type": "map"
+                    "name": "displaytext",
+                    "description": "the template display text",
+                    "type": "string"
                 },
                 {
-                    "description": "the date this template was created",
-                    "name": "created",
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date this template was removed",
                     "type": "date"
                 },
                 {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "additional key/value details tied with template",
+                    "type": "map"
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the account id to which the template belongs",
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "size",
+                    "description": "the size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
                     "name": "accountid",
+                    "description": "the account id to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
                     "type": "string"
                 },
                 {
-                    "description": "the format of the template.",
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this template was created",
+                    "type": "date"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string"
+                },
+                {
                     "name": "format",
+                    "description": "the format of the template.",
                     "type": "imageformat"
                 },
                 {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
-                    "type": "boolean"
+                    "name": "zoneid",
+                    "description": "the ID of the zone for this template",
+                    "type": "string"
                 },
                 {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the type of the template",
                     "name": "templatetype",
+                    "description": "the type of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID of the parent template if present",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID",
-                    "name": "id",
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the status of the template",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the template display text",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
                     "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the template",
-                    "name": "projectid",
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "checksum of the template",
-                    "name": "checksum",
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
                 }
             ]
         },
         {
+            "name": "listOpenDaylightControllers",
             "description": "Lists OpenDyalight controllers",
             "isasync": false,
-            "name": "listOpenDaylightControllers",
+            "related": "deleteOpenDaylightController,addOpenDaylightController",
             "params": [
                 {
-                    "description": "the Physical Network ID",
-                    "length": 255,
                     "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createPhysicalNetwork"
                 },
                 {
-                    "description": "the ID of a OpenDaylight Controller",
-                    "length": 255,
                     "name": "id",
-                    "related": "addOpenDaylightController,deleteOpenDaylightController,listOpenDaylightControllers",
+                    "description": "the ID of a OpenDaylight Controller",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listOpenDaylightControllers,deleteOpenDaylightController,addOpenDaylightController"
                 }
             ],
-            "related": "addOpenDaylightController,deleteOpenDaylightController",
             "response": [
                 {
-                    "description": "the username to authenticate to the controller",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the name assigned to the controller",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the controller",
                     "name": "id",
+                    "description": "device id of the controller",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network to which this controller belongs to",
-                    "name": "physicalnetworkid",
+                    "name": "name",
+                    "description": "the name assigned to the controller",
                     "type": "string"
                 },
                 {
-                    "description": "the url of the controller api",
                     "name": "url",
+                    "description": "the url of the controller api",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the username to authenticate to the controller",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this controller belongs to",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Adds a BigSwitch BCF Controller device",
-            "isasync": true,
             "name": "addBigSwitchBcfDevice",
+            "description": "Adds a BigSwitch BCF Controller device",
+            "since": "4.6.0",
+            "isasync": true,
+            "related": "listBigSwitchBcfDevices",
             "params": [
                 {
-                    "description": "Hostname of ip address of the BigSwitch BCF Controller.",
-                    "length": 255,
                     "name": "hostname",
-                    "required": true,
-                    "type": "string"
+                    "description": "Hostname of ip address of the BigSwitch BCF Controller.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the Physical Network ID",
-                    "length": 255,
                     "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createPhysicalNetwork"
                 },
                 {
-                    "description": "Username of the BigSwitch BCF Controller.",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "NAT support of the BigSwitch BCF Controller.",
-                    "length": 255,
-                    "name": "nat",
-                    "required": true,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Password of the BigSwitch BCF Controller.",
-                    "length": 255,
                     "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "description": "Password of the BigSwitch BCF Controller.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "Username of the BigSwitch BCF Controller.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "nat",
+                    "description": "NAT support of the BigSwitch BCF Controller.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listBigSwitchBcfDevices",
             "response": [
                 {
-                    "description": "the controller username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "NAT support",
                     "name": "nat",
+                    "description": "NAT support",
                     "type": "boolean"
                 },
                 {
-                    "description": "the controller password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the controller Ip address",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the BigSwitch BCF Controller",
                     "name": "bcfdeviceid",
+                    "description": "device id of the BigSwitch BCF Controller",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network to which this BigSwitch BCF segment belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
                     "name": "bigswitchdevicename",
+                    "description": "device name",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the controller Ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this BigSwitch BCF segment belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the controller username",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the controller password",
                     "type": "string"
                 }
-            ],
-            "since": "4.6.0"
+            ]
         },
         {
+            "name": "deleteCounter",
             "description": "Deletes a counter",
             "isasync": true,
-            "name": "deleteCounter",
             "params": [
                 {
-                    "description": "the ID of the counter",
-                    "length": 255,
                     "name": "id",
-                    "related": "createCounter,listCounters",
+                    "description": "the ID of the counter",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listCounters,createCounter"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "updateDefaultNicForVirtualMachine",
             "description": "Changes the default NIC on a VM",
             "isasync": true,
-            "name": "updateDefaultNicForVirtualMachine",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "Virtual Machine ID",
+                    "name": "nicid",
+                    "description": "NIC ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "NIC ID",
+                    "name": "virtualmachineid",
+                    "description": "Virtual Machine ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "nicid",
-                    "related": "",
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,updateDefaultNicForVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "details",
+                    "description": "Vm details in key/value pairs.",
                     "type": "map"
                 },
                 {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
                     "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
                     "type": "long"
                 },
                 {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
+                            "name": "account",
+                            "description": "the account owning the security group",
                             "type": "string"
                         },
                         {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
+                            "name": "projectid",
+                            "description": "the project id of the group",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
                         },
                         {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
                             "name": "id",
+                            "description": "the ID of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the nic",
-                            "name": "type",
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
                         },
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
+                            "name": "project",
+                            "description": "the project name of the group",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                }
+                            ]
                         },
                         {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
+                            "name": "domain",
+                            "description": "the domain name of the security group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
                     "type": "string"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
                     "type": "integer"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
                     "type": "long"
                 },
                 {
-                    "description": "the user's name who deployed the virtual machine",
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
                     "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                }
+            ]
+        },
+        {
+            "name": "issueOutOfBandManagementPowerAction",
+            "description": "Initiates the specified power action to the host's out-of-band management interface",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
+                },
+                {
+                    "name": "action",
+                    "description": "out-of-band management power actions, valid actions are: ON, OFF, CYCLE, RESET, SOFT, STATUS",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "timeout",
+                    "description": "optional operation timeout in seconds that overrides the global or cluster-level out-of-band management timeout setting",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "port",
+                    "description": "the out-of-band management interface port",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "address",
+                    "description": "the out-of-band management interface address",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
+                    "type": "string"
+                },
+                {
+                    "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
+                    "type": "powerstate"
+                },
+                {
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
+                },
+                {
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                },
+                {
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Initiates the specified power action to the host's out-of-band management interface",
-            "isasync": true,
-            "name": "issueOutOfBandManagementPowerAction",
-            "params": [
-                {
-                    "description": "the ID of the host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "optional operation timeout in seconds that overrides the global or cluster-level out-of-band management timeout setting",
-                    "length": 255,
-                    "name": "timeout",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "out-of-band management power actions, valid actions are: ON, OFF, CYCLE, RESET, SOFT, STATUS",
-                    "length": 255,
-                    "name": "action",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "disableOutOfBandManagementForCluster,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
-            "response": [
-                {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface address",
-                    "name": "address",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface powerState of the host",
-                    "name": "powerstate",
-                    "type": "powerstate"
-                },
-                {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface port",
-                    "name": "port",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
+            "name": "deleteUser",
             "description": "Deletes a user for an account",
             "isasync": false,
-            "name": "deleteUser",
             "params": [
                 {
-                    "description": "id of the user to be deleted",
-                    "length": 255,
                     "name": "id",
-                    "related": "disableUser,lockUser,enableUser,getUser,listUsers,updateUser,createUser",
+                    "description": "id of the user to be deleted",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateUser,listUsers,enableUser,lockUser,getUser,createUser,disableUser"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "issueCertificate",
+            "description": "Issues a client certificate using configured or provided CA plugin",
+            "since": "4.11.0",
+            "isasync": true,
+            "related": "listCaCertificate",
+            "params": [
+                {
+                    "name": "ipaddress",
+                    "description": "Comma separated list of IP addresses, the certificate should be issued for",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "duration",
+                    "description": "Certificate validity duration in number of days, when not provided the default configured value will be used",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provider",
+                    "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domain",
+                    "description": "Comma separated list of domains, the certificate should be issued for. When csr is not provided, the first domain is used as a subject/CN",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "csr",
+                    "description": "The certificate signing request (in pem format), if CSR is not provided then configured/provided options are considered",
+                    "type": "string",
+                    "length": 65535,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "certificate",
+                    "description": "The client certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "privatekey",
+                    "description": "Private key for the certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "cacertificates",
+                    "description": "The CA certificate(s)",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteNetworkDevice",
             "description": "Deletes network device.",
             "isasync": false,
-            "name": "deleteNetworkDevice",
             "params": [
                 {
-                    "description": "Id of network device to delete",
-                    "length": 255,
                     "name": "id",
-                    "related": "addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
+                    "description": "Id of network device to delete",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "createPortForwardingRule",
             "description": "Creates a port forwarding rule",
             "isasync": true,
-            "name": "createPortForwardingRule",
+            "related": "updatePortForwardingRule,listPortForwardingRules",
             "params": [
                 {
-                    "description": "VM guest nic secondary IP address for the port forwarding rule",
-                    "length": 255,
-                    "name": "vmguestip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address id of the port forwarding rule",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "associateIpAddress,restartNetwork,updateIpAddress,associateIpAddress,listPublicIpAddresses",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the protocol for the port forwarding rule. Valid values are TCP or UDP.",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of port forwarding rule's private port range",
-                    "length": 255,
-                    "name": "privateport",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the virtual machine for the port forwarding rule",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the network of the virtual machine the port forwarding rule will be created for. Required when public IP address is not associated with any guest network yet (VPC case).",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "length": 255,
-                    "name": "publicendport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "length": 255,
                     "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
+                    "description": "the cidr list to forward traffic from",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the starting port of port forwarding rule's public port range",
-                    "length": 255,
-                    "name": "publicport",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "length": 255,
                     "name": "privateendport",
-                    "required": false,
-                    "type": "integer"
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. If not specified 1) defaulted to false when PF rule is being created for VPC guest network 2) in all other cases defaulted to true",
+                    "name": "privateport",
+                    "description": "the starting port of port forwarding rule's private port range",
+                    "type": "integer",
                     "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine for the port forwarding rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
                     "name": "openfirewall",
+                    "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. If not specified 1) defaulted to false when PF rule is being created for VPC guest network 2) in all other cases defaulted to true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vmguestip",
+                    "description": "VM guest nic secondary IP address for the port forwarding rule",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the IP address id of the port forwarding rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,restartNetwork,associateIpAddress"
+                },
+                {
+                    "name": "publicport",
+                    "description": "the starting port of port forwarding rule's public port range",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol for the port forwarding rule. Valid values are TCP or UDP.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "since": "4.4"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network of the virtual machine the port forwarding rule will be created for. Required when public IP address is not associated with any guest network yet (VPC case).",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "publicendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updatePortForwardingRule,listPortForwardingRules",
             "response": [
                 {
-                    "description": "the starting port of port forwarding rule's private port range",
-                    "name": "privateport",
-                    "type": "string"
-                },
-                {
-                    "description": "the VM name for the port forwarding rule",
-                    "name": "virtualmachinename",
-                    "type": "string"
-                },
-                {
-                    "description": "the VM display name for the port forwarding rule",
                     "name": "virtualmachinedisplayname",
+                    "description": "the VM display name for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the public ip address for the port forwarding rule",
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
                     "name": "ipaddress",
+                    "description": "the public ip address for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "privateendport",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the port forwarding rule",
                     "name": "ipaddressid",
+                    "description": "the public ip address id for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the port forwarding rule",
+                    "name": "virtualmachineid",
+                    "description": "the VM ID for the port forwarding rule",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the ID of the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the starting port of port forwarding rule's public port range",
-                    "name": "publicport",
+                    "name": "publicendport",
+                    "description": "the ending port of port forwarding rule's private port range",
                     "type": "string"
                 },
                 {
-                    "description": "the vm ip address for the port forwarding rule",
-                    "name": "vmguestip",
-                    "type": "string"
-                },
-                {
-                    "description": "is firewall for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of resource tags associated with the rule",
                     "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
                             "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "resource type",
-                            "name": "resourcetype",
+                            "name": "value",
+                            "description": "tag value",
                             "type": "string"
                         },
                         {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
                             "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the VM ID for the port forwarding rule",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the guest network the port forwarding rule belongs to",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the port forwarding rule",
                     "name": "protocol",
+                    "description": "the protocol of the port forwarding rule",
                     "type": "string"
                 },
                 {
+                    "name": "privateport",
+                    "description": "the starting port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "vmguestip",
+                    "description": "the vm ip address for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the id of the guest network the port forwarding rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is firewall for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "virtualmachinename",
+                    "description": "the VM name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "publicport",
+                    "description": "the starting port of port forwarding rule's public port range",
+                    "type": "string"
+                },
+                {
+                    "name": "privateendport",
                     "description": "the ending port of port forwarding rule's private port range",
-                    "name": "publicendport",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Dedicates a zones.",
-            "isasync": true,
-            "name": "dedicateZone",
-            "params": [
-                {
-                    "description": "the ID of the containing domain",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the account which needs dedication. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the ID of the Zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID to which the Zone is dedicated",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Name of the Zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the Dedication Affinity Group ID of the zone",
-                    "name": "affinitygroupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the dedicated resource",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Account Id to which the Zone is dedicated",
-                    "name": "accountid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
+            "name": "prepareTemplate",
             "description": "load template into primary storage",
             "isasync": false,
-            "name": "prepareTemplate",
+            "related": "createTemplate,registerIso,updateTemplate,listIsos,listIsos,registerTemplate,copyTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "template ID of the template to be prepared in primary storage(s).",
-                    "length": 255,
                     "name": "templateid",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,prepareTemplate,listIsos,updateTemplate,createTemplate,copyIso",
+                    "description": "template ID of the template to be prepared in primary storage(s).",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createTemplate,registerIso,updateTemplate,listIsos,listIsos,registerTemplate,copyTemplate,registerTemplate,copyTemplate,prepareTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 },
                 {
-                    "description": "zone ID of the template to be prepared in primary storage(s).",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "storage pool ID of the primary storage pool to which the template should be prepared. If it is not provided the template is prepared on all the available primary storage pools.",
-                    "length": 255,
                     "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
+                    "description": "storage pool ID of the primary storage pool to which the template should be prepared. If it is not provided the template is prepared on all the available primary storage pools.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone ID of the template to be prepared in primary storage(s).",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
-            "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,listIsos,updateTemplate,createTemplate,copyIso",
             "response": [
                 {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the format of the template.",
-                    "name": "format",
-                    "type": "imageformat"
-                },
-                {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the size of the template",
                     "name": "size",
+                    "description": "the size of the template",
                     "type": "long"
                 },
                 {
-                    "description": "checksum of the template",
-                    "name": "checksum",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this template was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the template name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the template",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the template",
-                    "name": "templatetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
                     "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the status of the template",
-                    "name": "status",
+                    "name": "id",
+                    "description": "the template ID",
                     "type": "string"
                 },
                 {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the project name of the template",
-                    "name": "project",
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
                     "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the date this template was removed",
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
+                    "type": "boolean"
+                },
+                {
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "format",
+                    "description": "the format of the template.",
+                    "type": "imageformat"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
                     "name": "removed",
+                    "description": "the date this template was removed",
                     "type": "date"
                 },
                 {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
-                },
-                {
-                    "description": "additional key/value details tied with template",
                     "name": "details",
+                    "description": "additional key/value details tied with template",
                     "type": "map"
                 },
                 {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
                     "type": "string"
                 },
                 {
-                    "description": "the template display text",
                     "name": "displaytext",
+                    "description": "the template display text",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
+                    "name": "created",
+                    "description": "the date this template was created",
+                    "type": "date"
+                },
+                {
+                    "name": "checksum",
+                    "description": "checksum of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID",
-                    "name": "id",
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatetype",
+                    "description": "the type of the template",
                     "type": "string"
                 },
                 {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone for this template",
+                    "type": "string"
+                },
+                {
                     "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "dedicateZone",
+            "description": "Dedicates a zones.",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "domainid",
+                    "description": "the ID of the containing domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "the name of the account which needs dedication. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the dedicated resource",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Name of the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID to which the Zone is dedicated",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the Account Id to which the Zone is dedicated",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the zone",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "assignToLoadBalancerRule",
             "description": "Assigns virtual machine or a list of virtual machines to a load balancer rule.",
             "isasync": true,
-            "name": "assignToLoadBalancerRule",
             "params": [
                 {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updatePortForwardingRule,listPortForwardingRules",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75",
-                    "length": 255,
                     "name": "vmidipmap",
+                    "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75",
+                    "type": "map",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "map"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the list of IDs of the virtual machine that are being assigned to the load balancer rule(i.e. virtualMachineIds=1,2,3)",
+                    "name": "id",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "updatePortForwardingRule,listPortForwardingRules"
+                },
+                {
                     "name": "virtualmachineids",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,tmDestroyVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "the list of IDs of the virtual machine that are being assigned to the load balancer rule(i.e. virtualMachineIds=1,2,3)",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lookup VM hostname",
-            "isasync": true,
-            "name": "tmProvisionVirtualMachine",
-            "params": [
-                {
-                    "description": "OS family such as ol5,ol6,centos6,centos7",
-                    "length": 255,
-                    "name": "osfamily",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Instance type such as GP1-1-1",
-                    "length": 255,
-                    "name": "instancetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Ticketmaster inventory product code",
-                    "length": 255,
-                    "name": "productcode",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "FQDN of the virtual machine",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Set to reprovision current VM and update DNS record. Has no effect if VM and DNS record do not currently exist.If the VM does not currently exist it will be provisioned and DNS record will be created (or updated).",
-                    "length": 255,
-                    "name": "reprovision",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-
-                },
-                {
-
-                }
-            ]
-        },
-        {
+            "name": "archiveAlerts",
             "description": "Archive one or more alerts.",
             "isasync": false,
-            "name": "archiveAlerts",
             "params": [
                 {
-                    "description": "archive by alert type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "start date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
-                    "name": "startdate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "end date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
                     "name": "enddate",
-                    "required": false,
-                    "type": "date"
+                    "description": "end date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the IDs of the alerts",
+                    "name": "startdate",
+                    "description": "start date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "ids",
-                    "related": "listAlerts",
+                    "description": "the IDs of the alerts",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "listAlerts"
+                },
+                {
+                    "name": "type",
+                    "description": "archive by alert type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listAsyncJobs",
             "description": "Lists all pending asynchronous jobs for the account.",
             "isasync": false,
-            "name": "listAsyncJobs",
+            "related": "queryAsyncJobResult",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the start date of the async job",
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "startdate",
-                    "required": false,
-                    "type": "tzdate"
+                    "description": "the start date of the async job",
+                    "type": "tzdate",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "keyword",
                     "required": false,
-                    "type": "string"
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "queryAsyncJobResult",
             "response": [
                 {
-                    "description": "the account that executed the async command",
                     "name": "accountid",
+                    "description": "the account that executed the async command",
                     "type": "string"
                 },
                 {
-                    "description": "the progress information of the PENDING job",
-                    "name": "jobprocstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the unique ID of the instance/entity object related to the job",
-                    "name": "jobinstanceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the current job status-should be 0 for PENDING",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the instance/entity object related to the job",
-                    "name": "jobinstancetype",
-                    "type": "string"
-                },
-                {
-                    "description": "  the created date of the job",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the async command executed",
                     "name": "cmd",
+                    "description": "the async command executed",
                     "type": "string"
                 },
                 {
-                    "description": "the result type",
                     "name": "jobresulttype",
+                    "description": "the result type",
                     "type": "string"
                 },
                 {
-                    "description": "the result code for the job",
-                    "name": "jobresultcode",
+                    "name": "userid",
+                    "description": "the user that executed the async command",
+                    "type": "string"
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the current job status-should be 0 for PENDING",
                     "type": "integer"
                 },
                 {
-                    "description": "the result reason",
+                    "name": "jobprocstatus",
+                    "description": "the progress information of the PENDING job",
+                    "type": "integer"
+                },
+                {
+                    "name": "jobinstanceid",
+                    "description": "the unique ID of the instance/entity object related to the job",
+                    "type": "string"
+                },
+                {
                     "name": "jobresult",
+                    "description": "the result reason",
                     "type": "responseobject"
                 },
                 {
-                    "description": "the user that executed the async command",
-                    "name": "userid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a Cisco Vnmc controller",
-            "isasync": false,
-            "name": "deleteCiscoVnmcResource",
-            "params": [
+                    "name": "jobresultcode",
+                    "description": "the result code for the job",
+                    "type": "integer"
+                },
                 {
-                    "description": "Cisco Vnmc resource ID",
-                    "length": 255,
-                    "name": "resourceid",
-                    "related": "listCiscoVnmcResources",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "jobinstancetype",
+                    "description": "the instance/entity object related to the job",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "created",
+                    "description": "  the created date of the job",
+                    "type": "date"
                 }
             ]
         },
         {
+            "name": "stopInternalLoadBalancerVM",
             "description": "Stops an Internal LB vm.",
             "isasync": true,
-            "name": "stopInternalLoadBalancerVM",
+            "related": "changeServiceForRouter,listRouters,destroyRouter,listInternalLoadBalancerVMs",
             "params": [
                 {
-                    "description": "the ID of the internal lb vm",
+                    "name": "forced",
+                    "description": "Force stop the VM. The caller knows the VM is stopped.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "id",
-                    "related": "stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,changeServiceForRouter,destroyRouter,listRouters",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "Force stop the VM. The caller knows the VM is stopped.",
+                    "name": "id",
+                    "description": "the ID of the internal lb vm",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "forced",
-                    "required": false,
-                    "type": "boolean"
+                    "required": true,
+                    "related": "changeServiceForRouter,stopInternalLoadBalancerVM,listRouters,destroyRouter,listInternalLoadBalancerVMs"
                 }
             ],
-            "related": "listInternalLoadBalancerVMs,changeServiceForRouter,destroyRouter,listRouters",
             "response": [
                 {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding guest network",
                     "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
                     "type": "string"
                 },
                 {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the router was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the router",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the router",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the router template requires upgrader",
-                    "name": "requiresupgrade",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
-                    "name": "scriptsversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the router",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with the router",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the corresponding link local network",
-                    "name": "linklocalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the router",
                     "name": "hostid",
+                    "description": "the host ID for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
+                    "name": "account",
+                    "description": "the account associated with the router",
                     "type": "string"
                 },
                 {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the second IPv6 DNS for the router",
                     "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the router",
                     "name": "state",
+                    "description": "the state of the router",
                     "type": "state"
                 },
                 {
-                    "description": "the version of template",
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the router was created",
+                    "type": "date"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
                     "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "addBrocadeVcsDevice",
             "description": "Adds a Brocade VCS Switch",
             "isasync": true,
-            "name": "addBrocadeVcsDevice",
+            "related": "listBrocadeVcsDevices",
             "params": [
                 {
-                    "description": "Hostname of ip address of the Brocade VCS Switch.",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to access the Brocade VCS Switch API",
-                    "length": 255,
                     "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
                     "description": "Credentials to access the Brocade VCS Switch API",
+                    "type": "string",
                     "length": 255,
-                    "name": "username",
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "username",
+                    "description": "Credentials to access the Brocade VCS Switch API",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "hostname",
+                    "description": "Hostname of ip address of the Brocade VCS Switch.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listBrocadeVcsDevices",
             "response": [
                 {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the principal switch Ip address",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical Network to which this Brocade VCS belongs to",
                     "name": "physicalnetworkid",
+                    "description": "the physical Network to which this Brocade VCS belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "device id of the Brocade Vcs",
+                    "name": "hostname",
+                    "description": "the principal switch Ip address",
+                    "type": "string"
+                },
+                {
                     "name": "vcsdeviceid",
+                    "description": "device id of the Brocade Vcs",
                     "type": "string"
                 },
                 {
-                    "description": "device name",
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
                     "name": "brocadedevicename",
+                    "description": "device name",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createDomain",
             "description": "Creates a domain",
             "isasync": false,
-            "name": "createDomain",
+            "related": "listDomainChildren,listDomains,listDomains",
             "params": [
                 {
+                    "name": "name",
                     "description": "creates domain with this name",
+                    "type": "string",
                     "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "Domain UUID, required for adding domain from another Region",
-                    "length": 255,
-                    "name": "domainid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
+                    "name": "parentdomainid",
                     "description": "assigns new domain a parent domain by domain ID of the parent.  If no parent domain is specied, the ROOT domain is assumed.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "parentdomainid",
-                    "related": "createDomain,listDomains,listDomainChildren,listDomains",
                     "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Network domain for networks in the domain",
-                    "length": 255,
-                    "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "listDomains,listDomainChildren,listDomains",
-            "response": [
-                {
-                    "description": "the total number of templates available to be created by this domain",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this domain",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by domain",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this domain",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses this domain can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by domain",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the level of the domain",
-                    "name": "level",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total memory (in MB) the domain can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the domain can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this domain to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the domain can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the domain can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by domain",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the path of the domain",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this domain",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots stored by this domain",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs owned by domain",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume being used by this domain",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of projects available for administration by this domain",
-                    "name": "projectavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the domain",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this domain",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this domain",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the domain can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this domain",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the parent domain",
-                    "name": "parentdomainname",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this domain",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this domain",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this domain",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain ID of the parent domain",
-                    "name": "parentdomainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this domain",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this domain",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by domain",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines available for this domain to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this domain",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this domain",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the domain can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by domain",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this domain",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects being administrated by this domain",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects the domain can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "whether the domain has one or more sub-domains",
-                    "name": "haschild",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Deleting resource tag(s)",
-            "isasync": true,
-            "name": "deleteTags",
-            "params": [
-                {
-                    "description": "Delete tags for resource id(s)",
-                    "length": 255,
-                    "name": "resourceids",
-                    "required": true,
-                    "type": "list"
-                },
-                {
-                    "description": "Delete tag by resource type",
-                    "length": 255,
-                    "name": "resourcetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Delete tags matching key/value pairs",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.0.0"
-        },
-        {
-            "description": "List external firewall appliances.",
-            "isasync": false,
-            "name": "listExternalFirewalls",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "zone Id",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the external firewall",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private security zone of the external firewall",
-                    "name": "privatezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Restarts the network; includes 1) restarting network elements - virtual routers, DHCP servers 2) reapplying all public IPs 3) reapplying loadBalancing/portForwarding rules",
-            "isasync": true,
-            "name": "restartNetwork",
-            "params": [
-                {
-                    "description": "The ID of the network to restart.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If cleanup old network elements",
-                    "length": 255,
-                    "name": "cleanup",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses",
-            "response": [
-                {
-                    "description": "the name of the zone the public IP address belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine display name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinedisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this ip is for static nat, false otherwise",
-                    "name": "isstaticnat",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account the public IP address is associated with",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "is public ip for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "virutal machine name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinename",
-                    "type": "string"
-                },
-                {
-                    "description": "is public IP portable across the zones",
-                    "name": "isportable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "public IP address",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain the public IP address is associated with",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine id the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Network associated with the IP address",
-                    "name": "associatednetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Network associated with the IP address",
-                    "name": "associatednetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the VLAN associated with the IP address",
-                    "name": "vlanname",
-                    "type": "string"
-                },
-                {
-                    "description": "date the public IP address was acquired",
-                    "name": "allocated",
-                    "type": "date"
-                },
-                {
-                    "description": "public IP address id",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Network where ip belongs to",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
+                    "related": "createDomain,listDomainChildren,listDomains,listDomains"
                 },
                 {
-                    "description": "the domain ID the public IP address is associated with",
                     "name": "domainid",
+                    "description": "Domain UUID, required for adding domain from another Region",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "Network domain for networks in the domain",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "projectlimit",
+                    "description": "the total number of projects the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
-                    "name": "vlanid",
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with ip address",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by domain",
+                    "type": "float"
                 },
                 {
-                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "parentdomainname",
+                    "description": "the domain name of the parent domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this domain to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this domain can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "haschild",
+                    "description": "whether the domain has one or more sub-domains",
+                    "type": "boolean"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "parentdomainid",
+                    "description": "the domain ID of the parent domain",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this domain",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the domain",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the zone the public IP address belongs to",
-                    "name": "zoneid",
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
-                    "name": "issystem",
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "level",
+                    "description": "the level of the domain",
+                    "type": "integer"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this domain to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this domain",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "deleteTags",
+            "description": "Deleting resource tag(s)",
+            "since": "4.0.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "tags",
+                    "description": "Delete tags matching key/value pairs",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resourceids",
+                    "description": "Delete tags for resource id(s)",
+                    "type": "list",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "Delete tag by resource type",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "virutal machine (dnat) ip address (not null only for static nat Ip)",
-                    "name": "vmipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the IP address is a source nat address, false otherwise",
-                    "name": "issourcenat",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the virtual network for the IP address",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
-                    "name": "purpose",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the ip belongs to",
-                    "name": "vpcid",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "login",
             "description": "Logs a user into the CloudStack. A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the \"logout\" command has been issued or the session has expired.",
             "isasync": false,
-            "name": "login",
+            "related": "",
             "params": [
                 {
-                    "description": "Path of the domain that the user belongs to. Example: domain=/com/cloud/internal. If no domain is passed in, the ROOT (/) domain is assumed.",
-                    "length": 255,
-                    "name": "domain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The id of the domain that the user belongs to. If both domain and domainId are passed in, \"domainId\" parameter takes precendence",
-                    "length": 255,
                     "name": "domainId",
-                    "required": false,
-                    "type": "long"
+                    "description": "The id of the domain that the user belongs to. If both domain and domainId are passed in, \"domainId\" parameter takes precendence",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Username",
-                    "length": 255,
                     "name": "username",
-                    "required": true,
-                    "type": "string"
+                    "description": "Username",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "Hashed password (Default is MD5). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.",
+                    "name": "domain",
+                    "description": "Path of the domain that the user belongs to. Example: domain=/com/cloud/internal. If no domain is passed in, the ROOT (/) domain is assumed.",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "description": "Hashed password (Default is MD5). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "User ID",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "Session key that can be passed in subsequent Query command calls",
-                    "name": "sessionkey",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name the user belongs to",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the account type (admin, domain-admin, read-only-admin, user)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "first name of the user",
                     "name": "firstname",
+                    "description": "first name of the user",
                     "type": "string"
                 },
                 {
-                    "description": "Domain ID that the user belongs to",
+                    "name": "lastname",
+                    "description": "last name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "user time zone",
+                    "type": "string"
+                },
+                {
+                    "name": "registered",
+                    "description": "Is user registered",
+                    "type": "string"
+                },
+                {
                     "name": "domainid",
+                    "description": "Domain ID that the user belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the time period before the session has expired",
+                    "name": "userid",
+                    "description": "User ID",
+                    "type": "string"
+                },
+                {
                     "name": "timeout",
+                    "description": "the time period before the session has expired",
                     "type": "integer"
                 },
                 {
-                    "description": "Is user registered",
-                    "name": "registered",
+                    "name": "type",
+                    "description": "the account type (admin, domain-admin, read-only-admin, user)",
                     "type": "string"
                 },
                 {
-                    "description": "last name of the user",
-                    "name": "lastname",
+                    "name": "account",
+                    "description": "the account name the user belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "user time zone",
-                    "name": "timezone",
+                    "name": "timezoneoffset",
+                    "description": "user time zoneoffset",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "Username",
+                    "type": "string"
+                },
+                {
+                    "name": "sessionkey",
+                    "description": "Session key that can be passed in subsequent Query command calls",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists all hypervisor capabilities.",
-            "isasync": false,
-            "name": "listHypervisorCapabilities",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the hypervisor for which to restrict the search",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the hypervisor capability",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listHypervisorCapabilities",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the maximum number of Hosts per cluster for this hypervisor",
-                    "name": "maxhostspercluster",
-                    "type": "integer"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "true if storage motion is supported",
-                    "name": "storagemotionenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the maximum number of guest vms recommended for this hypervisor",
-                    "name": "maxguestslimit",
-                    "type": "long"
-                },
-                {
-                    "description": "true if security group is supported",
-                    "name": "securitygroupenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the maximum number of Data Volumes that can be attached for this hypervisor",
-                    "name": "maxdatavolumeslimit",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the hypervisor capabilities row",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor type",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Adds backup image store.",
-            "isasync": false,
-            "name": "addImageStore",
-            "params": [
-                {
-                    "description": "the Zone ID for the image store",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the URL for the image store",
-                    "length": 2048,
-                    "name": "url",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the image store provider name",
-                    "length": 255,
-                    "name": "provider",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the name for the image store",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "addSecondaryStorage,addImageStoreS3,updateCloudToUseObjectStore,listSwifts,listImageStores",
-            "response": [
-                {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
-                },
-                {
-                    "description": "the scope of the image store",
-                    "name": "scope",
-                    "type": "scopetype"
-                },
-                {
-                    "description": "the Zone name of the image store",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the image store",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the image store",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the image store",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the image store",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the provider name of the image store",
-                    "name": "providername",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Destroy VM and remove DNS entry",
+            "name": "restartNetwork",
+            "description": "Restarts the network; includes 1) restarting network elements - virtual routers, DHCP servers 2) reapplying all public IPs 3) reapplying loadBalancing/portForwarding rules",
             "isasync": true,
-            "name": "tmDestroyVirtualMachine",
+            "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,associateIpAddress",
             "params": [
                 {
-                    "description": "FQDN of the virtual machine",
+                    "name": "makeredundant",
+                    "description": "Turn the network into a network with redundant routers.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
+                    "required": false,
+                    "since": "4.11.1"
                 },
                 {
-                    "description": "Set to true to keep the DNS record",
+                    "name": "cleanup",
+                    "description": "If cleanup old network elements",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "retaindns",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "The ID of the network to restart.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
+                    "name": "associatednetworkname",
+                    "description": "the name of the Network associated with the IP address",
                     "type": "string"
                 },
                 {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
+                    "name": "fordisplay",
+                    "description": "is public ip for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
+                    "name": "networkid",
+                    "description": "the ID of the Network where ip belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
+                    "name": "tags",
+                    "description": "the list of resource tags associated with ip address",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        }
+                    ]
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
+                    "name": "account",
+                    "description": "the account the public IP address is associated with",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
+                    "name": "issourcenat",
+                    "description": "true if the IP address is a source nat address, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "virtualmachinedisplayname",
+                    "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)",
                     "type": "string"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
+                    "name": "zoneid",
+                    "description": "the ID of the zone the public IP address belongs to",
+                    "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "virtual machine id the ip address is assigned to (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "isstaticnat",
+                    "description": "true if this ip is for static nat, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the public IP address belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "isportable",
+                    "description": "is public IP portable across the zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "associatednetworkid",
+                    "description": "the ID of the Network associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "public IP address id",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the IP address",
+                    "type": "boolean"
+                },
+                {
+                    "name": "virtualmachinename",
+                    "description": "virtual machine name the ip address is assigned to (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "vlanid",
+                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "purpose",
+                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the ip belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID the public IP address is associated with",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain the public IP address is associated with",
+                    "type": "string"
+                },
+                {
+                    "name": "vmipaddress",
+                    "description": "virtual machine (dnat) ip address (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "vlanname",
+                    "description": "the VLAN associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "allocated",
+                    "description": "date the public IP address was acquired",
                     "type": "date"
                 },
                 {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listHypervisorCapabilities",
+            "description": "Lists all hypervisor capabilities.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the hypervisor capability",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listHypervisorCapabilities"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor for which to restrict the search",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the hypervisor capabilities row",
+                    "type": "string"
+                },
+                {
+                    "name": "maxdatavolumeslimit",
+                    "description": "the maximum number of Data Volumes that can be attached for this hypervisor",
+                    "type": "integer"
+                },
+                {
+                    "name": "storagemotionenabled",
+                    "description": "true if storage motion is supported",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor type",
+                    "type": "hypervisortype"
+                },
+                {
+                    "name": "securitygroupenabled",
+                    "description": "true if security group is supported",
+                    "type": "boolean"
+                },
+                {
+                    "name": "maxhostspercluster",
+                    "description": "the maximum number of Hosts per cluster for this hypervisor",
+                    "type": "integer"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
+                },
+                {
+                    "name": "maxguestslimit",
+                    "description": "the maximum number of guest vms recommended for this hypervisor",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "addImageStore",
+            "description": "Adds backup image store.",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "listSwifts,updateCloudToUseObjectStore,addImageStoreS3,addSecondaryStorage,listImageStores",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "the name for the image store",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provider",
+                    "description": "the image store provider name",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the image store",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "details",
+                    "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "url",
+                    "description": "the URL for the image store",
+                    "type": "string",
+                    "length": 2048,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the image store",
+                    "type": "scopetype"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "providername",
+                    "description": "the provider name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the image store",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "getSolidFireAccountId",
             "description": "Get SolidFire Account ID",
             "isasync": false,
-            "name": "getSolidFireAccountId",
+            "related": "",
             "params": [
                 {
-                    "description": "Storage Pool UUID",
+                    "name": "accountid",
+                    "description": "CloudStack Account UUID",
+                    "type": "string",
                     "length": 255,
-                    "name": "storageid",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "CloudStack Account UUID",
+                    "name": "storageid",
+                    "description": "Storage Pool UUID",
+                    "type": "string",
                     "length": 255,
-                    "name": "accountid",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "SolidFire Account ID",
                     "name": "solidFireAccountId",
+                    "description": "SolidFire Account ID",
                     "type": "long"
                 }
             ]
         },
         {
-            "description": "Lists all network services provided by CloudStack or for the given Provider.",
-            "isasync": false,
             "name": "listSupportedNetworkServices",
-            "params": [
-                {
-                    "description": "network service name to list providers and capabilities of",
-                    "length": 255,
-                    "name": "service",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "network service provider name",
-                    "length": 255,
-                    "name": "provider",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the service provider name",
-                    "name": "provider",
-                    "response": [
-                        {
-                            "description": "the physical network this belongs to",
-                            "name": "physicalnetworkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the provider name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "state of the network provider",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the destination physical network",
-                            "name": "destinationphysicalnetworkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "uuid of the network provider",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if individual services can be enabled/disabled",
-                            "name": "canenableindividualservice",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "services for this provider",
-                            "name": "servicelist",
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the list of capabilities",
-                    "name": "capability",
-                    "response": [
-                        {
-                            "description": "the capability value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "can this service capability value can be choosable while creatine network offerings",
-                            "name": "canchooseservicecapability",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the capability name",
-                            "name": "name",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the service name",
-                    "name": "name",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Lists role permissions",
+            "description": "Lists all network services provided by CloudStack or for the given Provider.",
+            "since": "3.0.0",
             "isasync": false,
-            "name": "listRolePermissions",
+            "related": "",
             "params": [
                 {
-                    "description": "ID of the role",
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "roleid",
-                    "related": "listRoles,createRole",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
+                },
+                {
+                    "name": "provider",
+                    "description": "network service provider name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "service",
+                    "description": "network service name to list providers and capabilities of",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the role to which the role permission belongs",
-                    "name": "roleid",
-                    "type": "string"
+                    "name": "capability",
+                    "description": "the list of capabilities",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "canchooseservicecapability",
+                            "description": "can this service capability value can be choosable while creatine network offerings",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "value",
+                            "description": "the capability value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capability name",
+                            "type": "string"
+                        }
+                    ]
                 },
                 {
-                    "description": "the api name or wildcard rule",
-                    "name": "rule",
-                    "type": "string"
+                    "name": "provider",
+                    "description": "the service provider name",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the provider name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "servicelist",
+                            "description": "services for this provider",
+                            "type": "list"
+                        },
+                        {
+                            "name": "physicalnetworkid",
+                            "description": "the physical network this belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "canenableindividualservice",
+                            "description": "true if individual services can be enabled/disabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "state",
+                            "description": "state of the network provider",
+                            "type": "string"
+                        },
+                        {
+                            "name": "destinationphysicalnetworkid",
+                            "description": "the destination physical network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "uuid of the network provider",
+                            "type": "string"
+                        }
+                    ]
                 },
                 {
-                    "description": "the name of the role to which the role permission belongs",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role permission",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the permission type of the api name or wildcard rule, allow/deny",
-                    "name": "permission",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the role permission",
-                    "name": "description",
+                    "name": "name",
+                    "description": "the service name",
                     "type": "string"
                 }
-            ],
-            "since": "4.9.0"
+            ]
         },
         {
+            "name": "listRolePermissions",
+            "description": "Lists role permissions",
+            "since": "4.9.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "roleid",
+                    "description": "ID of the role",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createRole,listRoles,updateRole"
+                }
+            ],
+            "response": [
+                {
+                    "name": "description",
+                    "description": "the description of the role permission",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the role permission",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role to which the role permission belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "rule",
+                    "description": "the api name or wildcard rule",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role to which the role permission belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "permission",
+                    "description": "the permission type of the api name or wildcard rule, allow/deny",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "revokeSecurityGroupIngress",
             "description": "Deletes a particular ingress rule from this security group",
             "isasync": true,
-            "name": "revokeSecurityGroupIngress",
             "params": [
                 {
-                    "description": "The ID of the ingress rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "authorizeSecurityGroupIngress",
+                    "description": "The ID of the ingress rule",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "authorizeSecurityGroupIngress"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listDedicatedGuestVlanRanges",
             "description": "Lists dedicated guest vlan ranges",
             "isasync": false,
-            "name": "listDedicatedGuestVlanRanges",
+            "related": "",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list dedicated guest vlan ranges by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listDedicatedGuestVlanRanges",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "physical network id of the guest VLAN range",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the account with which the guest VLAN range is associated. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "the account with which the guest VLAN range is associated. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the domain ID with which the guest VLAN range is associated.  If used with the account parameter, returns all guest VLAN ranges for that account in the specified domain.",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "physical network id of the guest VLAN range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
                     "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
+                    "description": "the domain ID with which the guest VLAN range is associated.  If used with the account parameter, returns all guest VLAN ranges for that account in the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomainChildren,listDomains,listDomains"
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "zone of the guest VLAN range",
+                    "name": "id",
+                    "description": "list dedicated guest vlan ranges by id",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listDedicatedGuestVlanRanges"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "zone of the guest VLAN range",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
                 },
                 {
-                    "description": "the dedicated guest vlan range",
-                    "length": 255,
-                    "name": "guestvlanrange",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "project who will own the guest VLAN range",
-                    "length": 255,
                     "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
+                    "description": "project who will own the guest VLAN range",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "guestvlanrange",
+                    "description": "the dedicated guest vlan range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the guest VLAN range",
-                    "name": "guestvlanrange",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the guest vlan range",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the guest VLAN range",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the guest VLAN range",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the guest VLAN range",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone of the guest vlan range",
                     "name": "zoneid",
+                    "description": "the zone of the guest vlan range",
                     "type": "long"
                 },
                 {
-                    "description": "the account of the guest VLAN range",
+                    "name": "project",
+                    "description": "the project name of the guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "guestvlanrange",
+                    "description": "the guest VLAN range",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the guest VLAN range",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the guest VLAN range",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the guest VLAN range",
+                    "type": "string"
+                },
+                {
                     "name": "account",
+                    "description": "the account of the guest VLAN range",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the guest vlan range",
                     "name": "projectid",
+                    "description": "the project id of the guest vlan range",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network of the guest vlan range",
                     "name": "physicalnetworkid",
+                    "description": "the physical network of the guest vlan range",
                     "type": "long"
                 }
             ]
         },
         {
+            "name": "addNetworkServiceProvider",
+            "description": "Adds a network serviceProvider to a physical network",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "listTrafficTypes,listNetworkServiceProviders",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "the name for the physical network service provider",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID to add the provider to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "destinationphysicalnetworkid",
+                    "description": "the destination Physical Network ID to bridge to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "servicelist",
+                    "description": "the list of services to be enabled for this physical network service provider",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "canenableindividualservice",
+                    "description": "true if individual services can be enabled/disabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "servicelist",
+                    "description": "services for this provider",
+                    "type": "list"
+                },
+                {
+                    "name": "name",
+                    "description": "the provider name",
+                    "type": "string"
+                },
+                {
+                    "name": "destinationphysicalnetworkid",
+                    "description": "the destination physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network provider",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "uuid of the network provider",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listNetworkACLs",
             "description": "Lists all network ACL items",
             "isasync": false,
-            "name": "listNetworkACLs",
+            "related": "updateNetworkACLItem,createNetworkACL",
             "params": [
                 {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list network ACL items by ACL ID",
-                    "length": 255,
-                    "name": "aclid",
-                    "related": "createNetworkACLList,listNetworkACLLists",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list network ACL items by protocol",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list network ACL items by network ID",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,listNiciraNvpDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list network ACL items by traffic type - ingress or egress",
-                    "length": 255,
-                    "name": "traffictype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list network ACL items by action",
-                    "length": 255,
-                    "name": "action",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
                     "name": "tags",
-                    "required": false,
-                    "type": "map"
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
                 },
                 {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "protocol",
+                    "description": "list network ACL items by protocol",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
                     "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "action",
+                    "description": "list network ACL items by action",
+                    "type": "string",
                     "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "Lists network ACL Item with the specified ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "createNetworkACL,listNetworkACLs,updateNetworkACLItem",
+                    "description": "Lists network ACL Item with the specified ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listNetworkACLs,updateNetworkACLItem,createNetworkACL"
+                },
+                {
+                    "name": "aclid",
+                    "description": "list network ACL items by ACL ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createNetworkACLList,listNetworkACLLists"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "list network ACL items by traffic type - ingress or egress",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "list network ACL items by network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,listNiciraNvpDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "createNetworkACL,updateNetworkACLItem",
             "response": [
                 {
-                    "description": "Number of the ACL Item",
-                    "name": "number",
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
                     "type": "integer"
                 },
                 {
-                    "description": "is rule for display to the regular user",
+                    "name": "aclid",
+                    "description": "the ID of the ACL this item belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the ACL Item",
+                    "type": "string"
+                },
+                {
+                    "name": "number",
+                    "description": "Number of the ACL Item",
+                    "type": "integer"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
+                },
+                {
+                    "name": "action",
+                    "description": "Action of ACL Item. Allow/Deny",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the ACL",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the network ACLs",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the traffic type for the ACL",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the network ACLs",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the ID of the ACL this item belongs to",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "Action of ACL Item. Allow/Deny",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the ACL",
                     "name": "protocol",
+                    "description": "the protocol of the ACL",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the ACL Item",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the starting port of ACL's port range",
-                    "name": "startport",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of ACL's port range",
                     "name": "endport",
+                    "description": "the ending port of ACL's port range",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of ACL's port range",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Adds a network serviceProvider to a physical network",
-            "isasync": true,
-            "name": "addNetworkServiceProvider",
-            "params": [
-                {
-                    "description": "the Physical Network ID to add the provider to",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the list of services to be enabled for this physical network service provider",
-                    "length": 255,
-                    "name": "servicelist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the name for the physical network service provider",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the destination Physical Network ID to bridge to",
-                    "length": 255,
-                    "name": "destinationphysicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listNetworkServiceProviders,listTrafficTypes",
-            "response": [
-                {
-                    "description": "the provider name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network provider",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if individual services can be enabled/disabled",
-                    "name": "canenableindividualservice",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the destination physical network",
-                    "name": "destinationphysicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "uuid of the network provider",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "services for this provider",
-                    "name": "servicelist",
-                    "type": "list"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
+            "name": "deleteVpnGateway",
             "description": "Delete site to site vpn gateway",
             "isasync": true,
-            "name": "deleteVpnGateway",
             "params": [
                 {
-                    "description": "id of customer gateway",
-                    "length": 255,
                     "name": "id",
-                    "related": "listVpnGateways,updateVpnGateway,createVpnGateway",
+                    "description": "id of customer gateway",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateVpnGateway,listVpnGateways,createVpnGateway"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "copyTemplate",
             "description": "Copies a template from one zone to another.",
             "isasync": true,
-            "name": "copyTemplate",
+            "related": "createTemplate,registerIso,updateTemplate,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.",
-                    "length": 255,
-                    "name": "sourcezoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Template ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "copyTemplate,registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,listIsos,updateTemplate,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "ID of the zone the template is being copied to.",
-                    "length": 255,
                     "name": "destzoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "ID of the zone the template is being copied to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "destzoneids",
+                    "description": "A list of IDs of the zones that the template needs to be copied to.Specify this list if the template needs to copied to multiple zones in one go. Do not specify destzoneid and destzoneids together, however one of them is required.",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "id",
+                    "description": "Template ID.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createTemplate,registerIso,updateTemplate,listIsos,listIsos,registerTemplate,copyTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "sourcezoneid",
+                    "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
                 }
             ],
-            "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,listIsos,updateTemplate,createTemplate,copyIso",
             "response": [
                 {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the template display text",
-                    "name": "displaytext",
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this template was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the type of the template",
-                    "name": "templatetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the format of the template.",
-                    "name": "format",
-                    "type": "imageformat"
-                },
-                {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the size of the template",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "checksum of the template",
-                    "name": "checksum",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this template was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the secondary storage host for the template",
                     "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
                     "type": "string"
                 },
                 {
-                    "description": "additional key/value details tied with template",
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
+                    "type": "string"
+                },
+                {
                     "name": "details",
+                    "description": "additional key/value details tied with template",
                     "type": "map"
                 },
                 {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
+                    "name": "created",
+                    "description": "the date this template was created",
+                    "type": "date"
                 },
                 {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
+                    "name": "format",
+                    "description": "the format of the template.",
+                    "type": "imageformat"
                 },
                 {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
                 },
                 {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the status of the template",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
                     "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the template",
-                    "name": "project",
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
+                    "name": "removed",
+                    "description": "the date this template was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
                     "type": "boolean"
                 },
                 {
-                    "description": "the template name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if this template is a public template, false otherwise",
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
+                    "type": "string"
+                },
+                {
                     "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
+                },
+                {
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the template",
-                    "name": "projectid",
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "templatetype",
+                    "description": "the type of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the template display text",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "the size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone for this template",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createServiceOffering",
             "description": "Creates a service offering.",
             "isasync": false,
-            "name": "createServiceOffering",
+            "related": "updateServiceOffering,listServiceOfferings",
             "params": [
                 {
-                    "description": "details for planner, used to store specific parameters",
-                    "length": 255,
-                    "name": "serviceofferingdetails",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "whether compute offering iops is custom or not",
-                    "length": 255,
-                    "name": "customizediops",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total memory of the service offering in MB",
-                    "length": 255,
-                    "name": "memory",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the HA for the service offering",
-                    "length": 255,
-                    "name": "offerha",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "data transfer rate in megabits per second allowed. Supported only for non-System offering and system offerings having \"domainrouter\" systemvmtype",
-                    "length": 255,
-                    "name": "networkrate",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the CPU number of the service offering",
-                    "length": 255,
                     "name": "cpunumber",
-                    "required": false,
-                    "type": "integer"
+                    "description": "the CPU number of the service offering",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
-                    "length": 255,
-                    "name": "provisioningtype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the containing domain, null for public offerings",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "bytes write rate of the disk offering",
-                    "length": 255,
-                    "name": "byteswriterate",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "is this a system vm offering",
-                    "length": 255,
-                    "name": "issystem",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the storage type of the service offering. Values are local and shared.",
-                    "length": 255,
-                    "name": "storagetype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk offering",
-                    "length": 255,
-                    "name": "bytesreadrate",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "true if the virtual machine needs to be volatile so that on every reboot of VM, original root disk is dettached then destroyed and a fresh root disk is created and attached to VM",
-                    "length": 255,
-                    "name": "isvolatile",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "max iops of the compute offering",
-                    "length": 255,
-                    "name": "maxiops",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "long"
-                },
-                {
-                    "description": "min iops of the compute offering",
-                    "length": 255,
-                    "name": "miniops",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "long"
-                },
-                {
-                    "description": "the host tag for this service offering.",
-                    "length": 255,
-                    "name": "hosttags",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The deployment planner heuristics used to deploy a VM of this offering. If null, value of global config vm.deployment.planner is used",
-                    "length": 255,
-                    "name": "deploymentplanner",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the tags for this service offering.",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU speed of the service offering in MHz.",
-                    "length": 255,
-                    "name": "cpuspeed",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the display text of the service offering",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the system VM type. Possible types are \"domainrouter\", \"consoleproxy\" and \"secondarystoragevm\".",
-                    "length": 255,
-                    "name": "systemvmtype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk offering",
-                    "length": 255,
-                    "name": "iopswriterate",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the service offering",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "the name of the service offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "io requests read rate of the disk offering",
+                    "name": "tags",
+                    "description": "the tags for this service offering.",
+                    "type": "string",
                     "length": 255,
-                    "name": "iopsreadrate",
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the containing domain, null for public offerings",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "long"
+                    "related": "listDomainChildren,listDomains,listDomains"
                 },
                 {
-                    "description": "restrict the CPU usage to committed service offering",
+                    "name": "byteswriterate",
+                    "description": "bytes write rate of the disk offering",
+                    "type": "long",
                     "length": 255,
-                    "name": "limitcpuuse",
+                    "required": false
+                },
+                {
+                    "name": "deploymentplanner",
+                    "description": "The deployment planner heuristics used to deploy a VM of this offering. If null, value of global config vm.deployment.planner is used",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed. Supported only for non-System offering and system offerings having \"domainrouter\" systemvmtype",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the compute offering",
+                    "type": "long",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
-                    "length": 255,
                     "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
+                    "type": "integer",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "integer"
+                    "since": "4.4"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the service offering in MHz.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "bytesreadrate",
+                    "description": "bytes read rate of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "serviceofferingdetails",
+                    "description": "details for planner, used to store specific parameters",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the service offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the compute offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "limitcpuuse",
+                    "description": "restrict the CPU usage to committed service offering",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "issystem",
+                    "description": "is this a system vm offering",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "memory",
+                    "description": "the total memory of the service offering in MB",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "offerha",
+                    "description": "the HA for the service offering",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "iopsreadrate",
+                    "description": "io requests read rate of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "systemvmtype",
+                    "description": "the system VM type. Possible types are \"domainrouter\", \"consoleproxy\" and \"secondarystoragevm\".",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hosttags",
+                    "description": "the host tag for this service offering.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isvolatile",
+                    "description": "true if the virtual machine needs to be volatile so that on every reboot of VM, original root disk is dettached then destroyed and a fresh root disk is created and attached to VM",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "customizediops",
+                    "description": "whether compute offering iops is custom or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "iopswriterate",
+                    "description": "io requests write rate of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "storagetype",
+                    "description": "the storage type of the service offering. Values are local and shared.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updateServiceOffering,listServiceOfferings",
             "response": [
                 {
-                    "description": "the host tag for the service offering",
-                    "name": "hosttags",
-                    "type": "string"
-                },
-                {
-                    "description": "the max iops of the disk offering",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
-                    "name": "hypervisorsnapshotreserve",
-                    "type": "integer"
-                },
-                {
-                    "description": "io requests read rate of the service offering",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the tags for the service offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of CPU",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "an alternate display text of the service offering.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage type for this service offering",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory in MB",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the domain id of the service offering",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "Domain name for the offering",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "is this a  default system vm offering",
-                    "name": "defaultuse",
-                    "type": "boolean"
-                },
-                {
-                    "description": "deployment strategy used to deploy VM.",
-                    "name": "deploymentplanner",
-                    "type": "string"
-                },
-                {
-                    "description": "is this a the systemvm type for system vm offering",
-                    "name": "systemvmtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the min iops of the disk offering",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "is true if the offering is customized",
                     "name": "iscustomized",
+                    "description": "is true if the offering is customized",
                     "type": "boolean"
                 },
                 {
-                    "description": "the id of the service offering",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk",
                     "name": "isvolatile",
+                    "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk",
                     "type": "boolean"
                 },
                 {
-                    "description": "the clock rate CPU speed in Mhz",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "restrict the CPU usage to committed service offering",
-                    "name": "limitcpuuse",
-                    "type": "boolean"
-                },
-                {
-                    "description": "data transfer rate in megabits per second allowed.",
-                    "name": "networkrate",
-                    "type": "integer"
-                },
-                {
-                    "description": "is this a system vm offering",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ha support in the service offering",
-                    "name": "offerha",
-                    "type": "boolean"
-                },
-                {
-                    "description": "bytes write rate of the service offering",
-                    "name": "diskBytesWriteRate",
+                    "name": "miniops",
+                    "description": "the min iops of the disk offering",
                     "type": "long"
                 },
                 {
-                    "description": "additional key/value details tied with this service offering",
-                    "name": "serviceofferingdetails",
-                    "type": "map"
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the service offering",
+                    "type": "long"
                 },
                 {
-                    "description": "the date this service offering was created",
+                    "name": "limitcpuuse",
+                    "description": "restrict the CPU usage to committed service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "defaultuse",
+                    "description": "is this a  default system vm offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed.",
+                    "type": "integer"
+                },
+                {
+                    "name": "systemvmtype",
+                    "description": "is this a the systemvm type for system vm offering",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory in MB",
+                    "type": "integer"
+                },
+                {
+                    "name": "domain",
+                    "description": "Domain name for the offering",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "the storage type for this service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of CPU",
+                    "type": "integer"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the service offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
+                    "type": "integer"
+                },
+                {
                     "name": "created",
+                    "description": "the date this service offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "io requests write rate of the service offering",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
+                    "name": "tags",
+                    "description": "the tags for the service offering",
+                    "type": "string"
                 },
                 {
-                    "description": "true if disk offering uses custom iops, false otherwise",
-                    "name": "iscustomizediops",
+                    "name": "name",
+                    "description": "the name of the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "offerha",
+                    "description": "the ha support in the service offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "bytes read rate of the service offering",
-                    "name": "diskBytesReadRate",
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the service offering",
                     "type": "long"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the clock rate CPU speed in Mhz",
+                    "type": "integer"
+                },
+                {
+                    "name": "deploymentplanner",
+                    "description": "deployment strategy used to deploy VM.",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "the max iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "the host tag for the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "is this a system vm offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "serviceofferingdetails",
+                    "description": "additional key/value details tied with this service offering",
+                    "type": "map"
+                },
+                {
+                    "name": "iscustomizediops",
+                    "description": "true if disk offering uses custom iops, false otherwise",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listNiciraNvpDeviceNetworks",
             "description": "lists network that are using a nicira nvp device",
             "isasync": false,
-            "name": "listNiciraNvpDeviceNetworks",
+            "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "nicira nvp device ID",
-                    "length": 255,
-                    "name": "nvpdeviceid",
-                    "related": "listNiciraNvpDevices,addNiciraNvpDevice",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "nvpdeviceid",
+                    "description": "nicira nvp device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNiciraNvpDevices,addNiciraNvpDevice"
                 }
             ],
-            "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
             "response": [
                 {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
                     "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
                     "type": "set"
                 },
                 {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
+                    "name": "related",
+                    "description": "related to what other network configuration",
                     "type": "string"
                 },
                 {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
+                    "name": "netmask",
+                    "description": "the network's netmask",
                     "type": "string"
                 },
                 {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
+                    "name": "id",
+                    "description": "the id of the network",
+                    "type": "string"
                 },
                 {
-                    "description": "VPC the network belongs to",
                     "name": "vpcid",
+                    "description": "VPC the network belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
                     "type": "string"
                 },
                 {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the type of the network",
-                    "name": "type",
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with network",
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
                             "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
-                    "name": "subdomainaccess",
-                    "type": "boolean"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "Broadcast domain type of the network",
                     "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
+                    "name": "account",
+                    "description": "the owner of the network",
                     "type": "string"
                 },
                 {
-                    "description": "the network domain",
-                    "name": "networkdomain",
+                    "name": "externalid",
+                    "description": "The external id of the network",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the id of the network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of services",
                     "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the service name",
                             "name": "name",
+                            "description": "the service name",
                             "type": "string"
                         },
                         {
-                            "description": "the service provider name",
-                            "name": "provider",
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the provider name",
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "name",
+                                    "description": "the capability name",
                                     "type": "string"
-                                },
+                                }
+                            ]
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
                                 {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
                                     "name": "id",
+                                    "description": "uuid of the network provider",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "state of the network provider",
                                     "name": "state",
+                                    "description": "state of the network provider",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "services for this provider",
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "servicelist",
+                                    "description": "services for this provider",
                                     "type": "list"
                                 },
                                 {
-                                    "description": "true if individual services can be enabled/disabled",
                                     "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
                                     "type": "boolean"
                                 }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
+                            ]
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the network's netmask",
-                    "name": "netmask",
+                    "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
+                    "name": "gateway",
+                    "description": "the network's gateway",
                     "type": "string"
                 },
                 {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
+                    "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
                     "type": "string"
                 },
                 {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the network",
                     "name": "zoneid",
+                    "description": "zone id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
+                    "type": "boolean"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
+                    "type": "boolean"
+                },
+                {
+                    "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Change ownership of a VM from one account to another. This API is available for Basic zones with security groups and Advanced zones with guest networks. A root administrator can reassign a VM from any account to any other account in any domain. A domain administrator can reassign a VM to any account in the same domain.",
-            "isasync": false,
             "name": "assignVirtualMachine",
+            "description": "Change ownership of a VM from one account to another. This API is available for Basic zones with security groups and Advanced zones with guest networks. A root administrator can reassign a VM from any account to any other account in any domain. A domain administrator can reassign a VM to any account in the same domain.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "list of new network ids in which the moved VM will participate. In case no network ids are provided the VM will be part of the default network for that zone. In case there is no network yet created for the new account the default network will be created.",
-                    "length": 255,
                     "name": "networkids",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
+                    "description": "list of new network ids in which the moved VM will participate. In case no network ids are provided the VM will be part of the default network for that zone. In case there is no network yet created for the new account the default network will be created.",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
                 },
                 {
-                    "description": "domain id of the new VM owner.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "account name of the new VM owner.",
-                    "length": 255,
                     "name": "account",
-                    "required": true,
-                    "type": "string"
+                    "description": "account name of the new VM owner.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list of security group ids to be applied on the virtual machine. In case no security groups are provided the VM is part of the default security group.",
+                    "name": "domainid",
+                    "description": "domain id of the new VM owner.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "securitygroupids",
-                    "related": "createSecurityGroup",
                     "required": false,
-                    "type": "list"
+                    "related": "listDomainChildren,listDomains,listDomains"
                 },
                 {
-                    "description": "id of the VM to be moved",
+                    "name": "securitygroupids",
+                    "description": "list of security group ids to be applied on the virtual machine. In case no security groups are provided the VM is part of the default security group.",
+                    "type": "list",
                     "length": 255,
+                    "required": false,
+                    "related": "createSecurityGroup"
+                },
+                {
+                    "name": "projectid",
+                    "description": "an optional project for the new VM owner.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,assignVirtualMachine,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "id of the VM to be moved",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,assignVirtualMachine,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
                     "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
                     "type": "integer"
                 },
                 {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "type": "string"
                 },
                 {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
+                    "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
                     "name": "created",
+                    "description": "the date when this virtual machine was created",
                     "type": "date"
                 },
                 {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the name of the security group",
-                            "name": "name",
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the project name of the group",
-                            "name": "project",
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the account owning the security group",
-                            "name": "account",
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
                             "type": "string"
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the project id of the group",
-                            "name": "projectid",
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
                             "type": "list"
                         },
                         {
-                            "description": "the name of the affinity group",
-                            "name": "name",
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
                     "type": "long"
                 },
                 {
-                    "description": "the memory used by the vm",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "memorykbs",
+                    "description": "the memory used by the vm",
                     "type": "long"
                 },
                 {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
 
                 },
                 {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
                     "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
                     "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
                     "type": "long"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
-            "description": " delete a BigSwitch BCF Controller device",
-            "isasync": true,
             "name": "deleteBigSwitchBcfDevice",
+            "description": " delete a BigSwitch BCF Controller device",
+            "since": "4.6.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "BigSwitch device ID",
-                    "length": 255,
                     "name": "bcfdeviceid",
-                    "related": "listBigSwitchBcfDevices",
+                    "description": "BigSwitch device ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listBigSwitchBcfDevices"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
-            ],
-            "since": "4.6.0"
+            ]
         },
         {
+            "name": "configureNetscalerLoadBalancer",
             "description": "configures a netscaler load balancer device",
             "isasync": true,
-            "name": "configureNetscalerLoadBalancer",
+            "related": "deployNetscalerVpx,registerNetscalerControlCenter,addNetscalerLoadBalancer,listNetscalerLoadBalancers",
             "params": [
                 {
-                    "description": "true if this netscaler device to dedicated for a account, false if the netscaler device will be shared by multiple accounts",
-                    "length": 255,
-                    "name": "lbdevicededicated",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Netscaler load balancer device ID",
-                    "length": 255,
-                    "name": "lbdeviceid",
-                    "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers,configureNetscalerLoadBalancer",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "capacity of the device, Capacity will be interpreted as number of networks device can handle",
-                    "length": 255,
-                    "name": "lbdevicecapacity",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "true if netscaler load balancer is intended to be used in in-line with firewall, false if netscaler load balancer will side-by-side with firewall",
-                    "length": 255,
                     "name": "inline",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if netscaler load balancer is intended to be used in in-line with firewall, false if netscaler load balancer will side-by-side with firewall",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
+                    "name": "lbdeviceid",
+                    "description": "Netscaler load balancer device ID",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "deployNetscalerVpx,registerNetscalerControlCenter,configureNetscalerLoadBalancer,addNetscalerLoadBalancer,listNetscalerLoadBalancers"
+                },
+                {
                     "name": "podids",
-                    "related": "updatePod",
+                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "lbdevicededicated",
+                    "description": "true if this netscaler device to dedicated for a account, false if the netscaler device will be shared by multiple accounts",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "lbdevicecapacity",
+                    "description": "capacity of the device, Capacity will be interpreted as number of networks device can handle",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers",
             "response": [
                 {
-                    "description": "device state",
-                    "name": "lbdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this netscaler device belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "private IP of the NetScaler representing GSLB site",
                     "name": "gslbproviderprivateip",
+                    "description": "private IP of the NetScaler representing GSLB site",
                     "type": "string"
                 },
                 {
-                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
+                    "name": "isexclusivegslbprovider",
+                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gslbproviderpublicip",
+                    "description": "public IP of the NetScaler representing GSLB site",
+                    "type": "string"
+                },
+                {
+                    "name": "lbdeviceid",
+                    "description": "device id of the netscaler load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this netscaler device belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "lbdevicestate",
+                    "description": "device state",
+                    "type": "string"
+                },
+                {
+                    "name": "publicinterface",
+                    "description": "the public interface of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "lbdevicededicated",
+                    "description": "true if device is dedicated for an account",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gslbprovider",
+                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
                     "name": "podids",
+                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
                     "type": "list"
                 },
                 {
-                    "description": "true if device is dedicated for an account",
-                    "name": "lbdevicededicated",
-                    "type": "boolean"
-                },
-                {
-                    "description": "public IP of the NetScaler representing GSLB site",
-                    "name": "gslbproviderpublicip",
+                    "name": "privateinterface",
+                    "description": "the private interface of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "name of the provider",
-                    "name": "provider",
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
-                    "name": "gslbprovider",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device capacity",
                     "name": "lbdevicecapacity",
+                    "description": "device capacity",
                     "type": "long"
                 },
                 {
-                    "description": "the management IP address of the external load balancer",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the netscaler load balancer",
-                    "name": "lbdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
                     "name": "lbdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
-                    "name": "isexclusivegslbprovider",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the private interface of the load balancer",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the load balancer",
-                    "name": "publicinterface",
+                    "description": "device name",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listOvsElements",
             "description": "Lists all available ovs elements.",
             "isasync": false,
-            "name": "listOvsElements",
+            "related": "configureOvsElement",
             "params": [
                 {
-                    "description": "list ovs elements by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listOvsElements,configureOvsElement",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list network offerings by enabled state",
-                    "length": 255,
                     "name": "enabled",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "list network offerings by enabled state",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list ovs elements by network service provider id",
+                    "name": "id",
+                    "description": "list ovs elements by id",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "nspid",
-                    "related": "listNetworkServiceProviders,listTrafficTypes",
                     "required": false,
-                    "type": "uuid"
+                    "related": "configureOvsElement,listOvsElements"
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "nspid",
+                    "description": "list ovs elements by network service provider id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "listTrafficTypes,listNetworkServiceProviders"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "configureOvsElement",
             "response": [
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
+                    "name": "nspid",
+                    "description": "the physical network service provider id of the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID associated with the provider",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "Enabled/Disabled the service provider",
                     "name": "enabled",
+                    "description": "Enabled/Disabled the service provider",
                     "type": "boolean"
                 },
                 {
-                    "description": "the id of the ovs",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network service provider id of the provider",
-                    "name": "nspid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the provider",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the provider",
                     "name": "account",
+                    "description": "the account associated with the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the address",
+                    "name": "domain",
+                    "description": "the domain associated with the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the ovs",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
                     "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "associateUcsProfileToBlade",
             "description": "associate a profile to a blade",
             "isasync": true,
-            "name": "associateUcsProfileToBlade",
+            "related": "",
             "params": [
                 {
-                    "description": "profile dn",
-                    "length": 255,
-                    "name": "profiledn",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "blade id",
-                    "length": 255,
                     "name": "bladeid",
-                    "related": "associateUcsProfileToBlade",
+                    "description": "blade id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "associateUcsProfileToBlade"
                 },
                 {
-                    "description": "ucs manager id",
+                    "name": "profiledn",
+                    "description": "profile dn",
+                    "type": "string",
                     "length": 255,
+                    "required": true
+                },
+                {
                     "name": "ucsmanagerid",
-                    "related": "addUcsManager,listUcsManagers",
+                    "description": "ucs manager id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listUcsManagers,addUcsManager"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "cloudstack host id this blade associates to",
                     "name": "hostid",
+                    "description": "cloudstack host id this blade associates to",
                     "type": "string"
                 },
                 {
-                    "description": "ucs blade id",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "ucs blade dn",
-                    "name": "bladedn",
-                    "type": "string"
-                },
-                {
-                    "description": "associated ucs profile dn",
                     "name": "profiledn",
+                    "description": "associated ucs profile dn",
                     "type": "string"
                 },
                 {
-                    "description": "ucs manager id",
                     "name": "ucsmanagerid",
+                    "description": "ucs manager id",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "ucs blade id",
+                    "type": "string"
+                },
+                {
+                    "name": "bladedn",
+                    "description": "ucs blade dn",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listNetscalerControlCenter",
+            "description": "list control center",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "username",
+                    "description": "username",
+                    "type": "string"
+                },
+                {
+                    "name": "numretries",
+                    "description": "num_retries",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "id",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "ncc_ip",
+                    "type": "string"
+                },
+                {
+                    "name": "uuid",
+                    "description": "uuid",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteAffinityGroup",
             "description": "Deletes affinity group",
             "isasync": true,
-            "name": "deleteAffinityGroup",
             "params": [
                 {
-                    "description": "the domain ID of account owning the affinity group",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the account of the affinity group. Must be specified with domain ID",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The ID of the affinity group. Mutually exclusive with name parameter",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The name of the affinity group. Mutually exclusive with ID parameter",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the project of the affinity group",
-                    "length": 255,
                     "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
+                    "description": "the project of the affinity group",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the affinity group. Must be specified with domain ID",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "The name of the affinity group. Mutually exclusive with ID parameter",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "The ID of the affinity group. Mutually exclusive with name parameter",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of account owning the affinity group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains,listDomains"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "resizeVolume",
             "description": "Resizes a volume",
             "isasync": true,
-            "name": "resizeVolume",
+            "related": "listVolumes,updateVolume,migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
             "params": [
                 {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVolumes,updateVolume,attachVolume,resizeVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "New minimum number of IOPS",
-                    "length": 255,
-                    "name": "miniops",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "New volume size in GB",
-                    "length": 255,
-                    "name": "size",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "new disk offering id",
-                    "length": 255,
-                    "name": "diskofferingid",
-                    "related": "createDiskOffering,listDiskOfferings",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "New maximum number of IOPS",
-                    "length": 255,
                     "name": "maxiops",
-                    "required": false,
-                    "type": "long"
+                    "description": "New maximum number of IOPS",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Verify OK to Shrink",
+                    "name": "diskofferingid",
+                    "description": "new disk offering id",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "shrinkok",
                     "required": false,
-                    "type": "boolean"
+                    "related": "listDiskOfferings,createDiskOffering"
+                },
+                {
+                    "name": "size",
+                    "description": "New volume size in GB",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "miniops",
+                    "description": "New minimum number of IOPS",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "shrinkok",
+                    "description": "Verify OK to Shrink",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listVolumes,updateVolume,migrateVolume,listVolumes,detachVolume,resizeVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
                 }
             ],
-            "related": "listVolumes,updateVolume,attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
             "response": [
                 {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                },
-                {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
                     "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "ID of the disk offering",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
-                },
-                {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the disk offering",
-                    "name": "diskofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the disk volume was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the path of the volume",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the volume",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "provisioning type used to create volumes.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "type": "string"
                 },
                 {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the disk volume",
-                    "name": "state",
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
                     "type": "string"
                 },
                 {
-                    "description": "id of the virtual machine",
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
                     "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
                     "type": "string"
                 },
                 {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
+                    "name": "storagetype",
+                    "description": "shared or local storage",
                     "type": "string"
                 },
                 {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date the disk volume was created",
                     "type": "date"
                 },
                 {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
+                    "name": "diskofferingname",
+                    "description": "name of the disk offering",
                     "type": "string"
                 },
                 {
-                    "description": "the display text of the service offering for root disk",
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the volume",
+                    "type": "string"
+                },
+                {
                     "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
                     "type": "string"
                 },
                 {
-                    "description": "need quiesce vm or not when taking snapshot",
-                    "name": "quiescevm",
-                    "type": "boolean"
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "size of the disk volume",
+                    "type": "long"
+                },
+                {
                     "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
                     "type": "boolean"
                 },
                 {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
+                    "name": "zonename",
+                    "description": "name of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes a Network Service Provider.",
-            "isasync": true,
             "name": "deleteNetworkServiceProvider",
+            "description": "Deletes a Network Service Provider.",
+            "since": "3.0.0",
+            "isasync": true,
             "params": [
                 {
+                    "name": "id",
                     "description": "the ID of the network service provider",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "listNetworkServiceProviders,listTrafficTypes",
                     "required": true,
-                    "type": "uuid"
+                    "related": "listTrafficTypes,listNetworkServiceProviders"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
-            "description": "Deletes a network offering.",
-            "isasync": false,
             "name": "deleteNetworkOffering",
+            "description": "Deletes a network offering.",
+            "since": "3.0.0",
+            "isasync": false,
             "params": [
                 {
-                    "description": "the ID of the network offering",
-                    "length": 255,
                     "name": "id",
-                    "related": "listNetworkOfferings",
+                    "description": "the ID of the network offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listNetworkOfferings"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "dedicatePod",
             "description": "Dedicates a Pod.",
             "isasync": true,
-            "name": "dedicatePod",
+            "related": "listDedicatedPods",
             "params": [
                 {
-                    "description": "the ID of the Pod",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the containing domain",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the account which needs dedication. Must be used with domainId.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "the name of the account which needs dedication. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the containing domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "podid",
+                    "description": "the ID of the Pod",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createManagementNetworkIpRange,updatePod"
                 }
             ],
-            "related": "listDedicatedPods",
             "response": [
                 {
-                    "description": "the domain ID to which the Pod is dedicated",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the dedicated resource",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Name of the Pod",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Account Id to which the Pod is dedicated",
                     "name": "accountid",
+                    "description": "the Account Id to which the Pod is dedicated",
                     "type": "string"
                 },
                 {
-                    "description": "the Dedication Affinity Group ID of the pod",
+                    "name": "podname",
+                    "description": "the Name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the dedicated resource",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID to which the Pod is dedicated",
+                    "type": "string"
+                },
+                {
                     "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the pod",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the Pod",
                     "name": "podid",
+                    "description": "the ID of the Pod",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateStorageNetworkIpRange",
+            "description": "Update a Storage network IP range, only allowed when no IPs in this range have been allocated.",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "listStorageNetworkIpRange,createStorageNetworkIpRange",
+            "params": [
+                {
+                    "name": "netmask",
+                    "description": "the netmask for storage network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "UUID of storage network ip range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listStorageNetworkIpRange,updateStorageNetworkIpRange,createStorageNetworkIpRange"
+                },
+                {
+                    "name": "startip",
+                    "description": "the beginning IP address",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP address",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vlan",
+                    "description": "Optional. the vlan the ip range sits on",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "endip",
+                    "description": "the end ip of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startip",
+                    "description": "the start ip of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network uuid of storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod uuid for the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone uuid of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the uuid of storage network IP range.",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
+                    "type": "integer"
+                }
+            ]
+        },
+        {
+            "name": "listNetworkDevice",
             "description": "List network devices",
             "isasync": false,
-            "name": "listNetworkDevice",
+            "related": "addNetworkDevice",
             "params": [
                 {
-                    "description": "parameters for network device",
-                    "length": 255,
-                    "name": "networkdeviceparameterlist",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall",
-                    "length": 255,
-                    "name": "networkdevicetype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkdevicetype",
+                    "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkdeviceparameterlist",
+                    "description": "parameters for network device",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addNetworkDevice",
             "response": [
                 {
-                    "description": "the ID of the network device",
                     "name": "id",
+                    "description": "the ID of the network device",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Update a Storage network IP range, only allowed when no IPs in this range have been allocated.",
-            "isasync": true,
-            "name": "updateStorageNetworkIpRange",
+            "name": "querySimulatorMock",
+            "description": "query simulator mock",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "UUID of storage network ip range",
-                    "length": 255,
                     "name": "id",
-                    "related": "createStorageNetworkIpRange,listStorageNetworkIpRange,updateStorageNetworkIpRange",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Optional. the vlan the ip range sits on",
+                    "description": "id of the configured mock",
+                    "type": "long",
                     "length": 255,
-                    "name": "vlan",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the beginning IP address",
-                    "length": 255,
-                    "name": "startip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask for storage network",
-                    "length": 255,
-                    "name": "netmask",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ending IP address",
-                    "length": 255,
-                    "name": "endip",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 }
             ],
-            "related": "createStorageNetworkIpRange,listStorageNetworkIpRange",
             "response": [
                 {
-                    "description": "the start ip of the storage network IP range",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone uuid of the storage network IP range",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the uuid of storage network IP range.",
                     "name": "id",
-                    "type": "string"
+                    "description": "the mock ID",
+                    "type": "long"
                 },
                 {
-                    "description": "the end ip of the storage network IP range",
-                    "name": "endip",
-                    "type": "string"
+                    "name": "hostid",
+                    "description": "the Host ID scope of the mock",
+                    "type": "long"
                 },
                 {
-                    "description": "the gateway of the storage network IP range",
-                    "name": "gateway",
-                    "type": "string"
+                    "name": "clusterid",
+                    "description": "the Cluster ID scope of the mock",
+                    "type": "long"
                 },
                 {
-                    "description": "the netmask of the storage network IP range",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod uuid for the storage network IP range",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network uuid of storage network IP range",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID or VID of the VLAN.",
-                    "name": "vlan",
+                    "name": "count",
+                    "description": "number of times mock is executed, if not specified then mock remains active till cleaned up",
                     "type": "integer"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID scope of the mock",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the agent command to be mocked",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID scope of the mock",
+                    "type": "long"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "deleteOpenDaylightController",
             "description": "Removes an OpenDyalight controler",
             "isasync": true,
-            "name": "deleteOpenDaylightController",
+            "related": "addOpenDaylightController",
             "params": [
                 {
-                    "description": "OpenDaylight Controller ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "addOpenDaylightController,deleteOpenDaylightController",
+                    "description": "OpenDaylight Controller ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "deleteOpenDaylightController,addOpenDaylightController"
                 }
             ],
-            "related": "addOpenDaylightController",
             "response": [
                 {
-                    "description": "the name assigned to the controller",
                     "name": "name",
+                    "description": "the name assigned to the controller",
                     "type": "string"
                 },
                 {
-                    "description": "the url of the controller api",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this controller belongs to",
                     "name": "physicalnetworkid",
+                    "description": "the physical network to which this controller belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "device id of the controller",
                     "name": "id",
+                    "description": "device id of the controller",
                     "type": "string"
                 },
                 {
-                    "description": "the username to authenticate to the controller",
                     "name": "username",
+                    "description": "the username to authenticate to the controller",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of the controller api",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateTemplate",
             "description": "Updates attributes of a template.",
             "isasync": false,
-            "name": "updateTemplate",
+            "related": "createTemplate,registerIso,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "true if the image supports the password reset feature; default is false",
-                    "length": 255,
-                    "name": "passwordenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template requres HVM, false otherwise; available only for updateTemplate API",
-                    "length": 255,
-                    "name": "requireshvm",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the display text of the image",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS type that best represents the OS of this image.",
-                    "length": 255,
-                    "name": "ostypeid",
-                    "related": "addGuestOs,listOsTypes",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if image is bootable, false otherwise; available only for updateIso API",
-                    "length": 255,
                     "name": "bootable",
+                    "description": "true if image is bootable, false otherwise; available only for updateIso API",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image file",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sortkey",
+                    "description": "sort key of the template, integer",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type that best represents the OS of this image.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
+                    "related": "listOsTypes,addGuestOs"
+                },
+                {
+                    "name": "details",
+                    "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrouting",
+                    "description": "true if the template type is routing i.e., if template is used to deploy router",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cleanupdetails",
+                    "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the image",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                },
+                {
+                    "name": "requireshvm",
+                    "description": "true if the template requres HVM, false otherwise; available only for updateTemplate API",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the image file",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createTemplate,registerIso,updateTemplate,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "format",
+                    "description": "the format for the image",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the image supports the password reset feature; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the image file",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the image file",
-                    "length": 255,
-                    "name": "id",
-                    "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,listIsos,updateTemplate,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
                 },
                 {
-                    "description": "true if the template type is routing i.e., if template is used to deploy router",
-                    "length": 255,
-                    "name": "isrouting",
-                    "required": false,
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
-                    "length": 255,
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date this template was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
+                    "type": "string"
+                },
+                {
                     "name": "details",
-                    "required": false,
+                    "description": "additional key/value details tied with template",
                     "type": "map"
                 },
                 {
-                    "description": "the format for the image",
-                    "length": 255,
-                    "name": "format",
-                    "required": false,
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
                     "type": "string"
                 },
                 {
-                    "description": "sort key of the template, integer",
-                    "length": 255,
-                    "name": "sortkey",
-                    "required": false,
-                    "type": "integer"
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
+                    "type": "string"
                 },
                 {
-                    "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "length": 255,
-                    "name": "isdynamicallyscalable",
-                    "required": false,
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
                     "type": "boolean"
-                }
-            ],
-            "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,listIsos,createTemplate,copyIso",
-            "response": [
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
                 },
                 {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
-                    "type": "string"
-                },
-                {
-                    "description": "checksum of the template",
-                    "name": "checksum",
-                    "type": "string"
-                },
-                {
-                    "description": "the size of the template",
-                    "name": "size",
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
                     "type": "long"
                 },
                 {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the template",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template display text",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the template name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date this template was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date this template was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the template",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the template",
-                    "name": "templatetype",
-                    "type": "string"
-                },
-                {
-                    "description": "additional key/value details tied with template",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the format of the template.",
-                    "name": "format",
-                    "type": "imageformat"
-                },
-                {
-                    "description": "the project name of the template",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account name to which the template belongs",
                     "name": "account",
+                    "description": "the account name to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
+                    "name": "displaytext",
+                    "description": "the template display text",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
+                },
+                {
                     "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the domain to which the template belongs",
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
                     "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this template was created",
+                    "type": "date"
+                },
+                {
+                    "name": "templatetype",
+                    "description": "the type of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "size",
+                    "description": "the size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "format",
+                    "description": "the format of the template.",
+                    "type": "imageformat"
+                }
+            ]
+        },
+        {
+            "name": "updateVpnConnection",
+            "description": "Updates site to site vpn connection",
+            "since": "4.4",
+            "isasync": true,
+            "related": "createVpnConnection,listVpnConnections",
+            "params": [
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "id of vpn connection",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createVpnConnection,updateVpnConnection,listVpnConnections"
+                }
+            ],
+            "response": [
+                {
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "dpd",
+                    "description": "if DPD is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ikepolicy",
+                    "description": "IKE policy of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "s2scustomergatewayid",
+                    "description": "the customer gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "forceencap",
+                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passive",
+                    "description": "State of vpn connection",
+                    "type": "boolean"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is connection for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "id",
+                    "description": "the connection ID",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "ipsecpsk",
+                    "description": "IPsec Preshared-Key of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
+                    "name": "esppolicy",
+                    "description": "ESP policy of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "esplifetime",
+                    "description": "Lifetime of ESP SA of customer gateway",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "ikelifetime",
+                    "description": "Lifetime of IKE SA of customer gateway",
+                    "type": "long"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "s2svpngatewayid",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "State of vpn connection",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createVlanIpRange",
             "description": "Creates a VLAN IP range.",
             "isasync": false,
-            "name": "createVlanIpRange",
+            "related": "listVlanIpRanges,dedicatePublicIpRange",
             "params": [
                 {
-                    "description": "the ending IPv6 address in the IPv6 network range",
-                    "length": 255,
-                    "name": "endipv6",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "project who will own the VLAN. If VLAN is Zone wide, this parameter should be ommited",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the Zone ID of the VLAN IP range",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ending IP address in the VLAN IP range",
-                    "length": 255,
-                    "name": "endip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "optional parameter. Have to be specified for Direct Untagged vlan only.",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the beginning IPv6 address in the IPv6 network range",
-                    "length": 255,
-                    "name": "startipv6",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true if VLAN is of Virtual type, false if Direct",
-                    "length": 255,
-                    "name": "forvirtualnetwork",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the gateway of the IPv6 network. Required for Shared networks and Isolated networks when it belongs to VPC",
-                    "length": 255,
-                    "name": "ip6gateway",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "account who will own the VLAN. If VLAN is Zone wide, this parameter should be ommited",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "account who will own the VLAN. If VLAN is Zone wide, this parameter should be ommited",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the physical network id",
+                    "name": "podid",
+                    "description": "optional parameter. Have to be specified for Direct Untagged vlan only.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
                     "required": false,
-                    "type": "uuid"
+                    "related": "createManagementNetworkIpRange,updatePod"
                 },
                 {
-                    "description": "the beginning IP address in the VLAN IP range",
+                    "name": "endip",
+                    "description": "the ending IP address in the VLAN IP range",
+                    "type": "string",
                     "length": 255,
-                    "name": "startip",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "the netmask of the VLAN IP range",
+                    "name": "zoneid",
+                    "description": "the Zone ID of the VLAN IP range",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "forsystemvms",
+                    "description": "true if IP range is set to system vms, false if not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "netmask",
-                    "required": false,
-                    "type": "string"
+                    "description": "the netmask of the VLAN IP range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "domain ID of the account owning a VLAN",
+                    "name": "startip",
+                    "description": "the beginning IP address in the VLAN IP range",
+                    "type": "string",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "the network id",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks,listPaloAltoFirewallNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the gateway of the VLAN IP range",
-                    "length": 255,
-                    "name": "gateway",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the CIDR of IPv6 network, must be at least /64",
-                    "length": 255,
-                    "name": "ip6cidr",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID or VID of the VLAN. If not specified, will be defaulted to the vlan of the network or if vlan of the network is null - to Untagged",
-                    "length": 255,
                     "name": "vlan",
+                    "description": "the ID or VID of the VLAN. If not specified, will be defaulted to the vlan of the network or if vlan of the network is null - to Untagged",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "endipv6",
+                    "description": "the ending IPv6 address in the IPv6 network range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "project who will own the VLAN. If VLAN is Zone wide, this parameter should be ommited",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the CIDR of IPv6 network, must be at least /64",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listPaloAltoFirewallNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the VLAN IP range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of the IPv6 network. Required for Shared networks and Isolated networks when it belongs to VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "true if VLAN is of Virtual type, false if Direct",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "domain ID of the account owning a VLAN",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "startipv6",
+                    "description": "the beginning IPv6 address in the IPv6 network range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listVlanIpRanges,dedicatePublicIpRange",
             "response": [
                 {
-                    "description": "the virtual network for the VLAN IP range",
-                    "name": "forvirtualnetwork",
+                    "name": "netmask",
+                    "description": "the netmask of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
+                    "type": "string"
+                },
+                {
+                    "name": "endipv6",
+                    "description": "the end ipv6 of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name for the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startip",
+                    "description": "the start ip of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "startipv6",
+                    "description": "the start ipv6 of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "forsystemvms",
+                    "description": "indicates whether VLAN IP range is dedicated to system vms or not",
                     "type": "boolean"
                 },
                 {
-                    "description": "the end ip of the VLAN IP range",
                     "name": "endip",
+                    "description": "the end ip of the VLAN IP range",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod ID for the VLAN IP range",
-                    "name": "podid",
-                    "type": "string"
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the VLAN IP range",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the description of the VLAN IP range",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name for the VLAN IP range",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the network id of vlan range",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ip of the VLAN IP range",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ipv6 of the VLAN IP range",
-                    "name": "endipv6",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vlan range",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID or VID of the VLAN.",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the VLAN IP range",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the VLAN IP range",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ipv6 of the VLAN IP range",
-                    "name": "startipv6",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the VLAN IP range",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the VLAN IP range",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of the VLAN IP range",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the VLAN IP range",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the VLAN IP range",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vlan range",
                     "name": "projectid",
+                    "description": "the project id of the vlan range",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates site to site vpn connection",
-            "isasync": true,
-            "name": "updateVpnConnection",
-            "params": [
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the vpn to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "id of vpn connection",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createVpnConnection,listVpnConnections,updateVpnConnection",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "createVpnConnection,listVpnConnections",
-            "response": [
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "s2svpngatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "the connection ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "if DPD is enabled for customer gateway",
-                    "name": "dpd",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of IKE SA of customer gateway",
-                    "name": "ikelifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "ESP policy of the customer gateway",
-                    "name": "esppolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
-                    "name": "forceencap",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the public IP address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "guest cidr list of the customer gateway",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "public ip address id of the customer gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "IKE policy of the customer gateway",
-                    "name": "ikepolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "the customer gateway ID",
-                    "name": "s2scustomergatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "passive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "is connection for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Lifetime of ESP SA of customer gateway",
-                    "name": "esplifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "IPsec Preshared-Key of the customer gateway",
-                    "name": "ipsecpsk",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                }
-            ],
-            "since": "4.4"
-        },
-        {
+            "name": "listPaloAltoFirewallNetworks",
             "description": "lists network that are using Palo Alto firewall device",
             "isasync": false,
-            "name": "listPaloAltoFirewallNetworks",
+            "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "palo alto balancer device ID",
-                    "length": 255,
                     "name": "lbdeviceid",
-                    "related": "configurePaloAltoFirewall,listPaloAltoFirewalls,addPaloAltoFirewall",
+                    "description": "palo alto balancer device ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addPaloAltoFirewall,configurePaloAltoFirewall,listPaloAltoFirewalls"
                 },
                 {
-                    "description": "",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
             "response": [
                 {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
-                    "type": "string"
-                },
-                {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
-                    "name": "subdomainaccess",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of services",
                     "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the service name",
                             "name": "name",
+                            "description": "the service name",
                             "type": "string"
                         },
                         {
-                            "description": "the service provider name",
                             "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "services for this provider",
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "servicelist",
+                                    "description": "services for this provider",
                                     "type": "list"
                                 },
                                 {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
                                     "name": "state",
+                                    "description": "state of the network provider",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
                                     "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
                                     "type": "boolean"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "the list of capabilities",
                             "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability name",
                                     "name": "name",
+                                    "description": "the capability name",
                                     "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "zone id of the network",
-                    "name": "zoneid",
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
+                    "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
                     "type": "string"
                 },
                 {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "related",
+                    "description": "related to what other network configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the network's gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
                     "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
                     "type": "string"
                 },
                 {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "externalid",
+                    "description": "The external id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the network",
+                    "type": "string"
+                },
+                {
                     "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
                     "type": "set"
                 },
                 {
-                    "description": "the network's gateway",
-                    "name": "gateway",
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
                     "type": "string"
                 },
                 {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
                     "type": "string"
                 },
                 {
-                    "description": "true if network is default, false otherwise",
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the network's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the network",
+                    "type": "string"
+                },
+                {
                     "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
+                    "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
+                    "type": "string"
                 },
                 {
-                    "description": "VPC the network belongs to",
                     "name": "vpcid",
+                    "description": "VPC the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "getPathForVolume",
             "description": "Get the path associated with the provided volume UUID",
             "isasync": false,
-            "name": "getPathForVolume",
+            "related": "",
             "params": [
                 {
-                    "description": "CloudStack Volume UUID",
-                    "length": 255,
                     "name": "volumeid",
-                    "required": true,
-                    "type": "string"
+                    "description": "CloudStack Volume UUID",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "The path field for the volume",
                     "name": "path",
+                    "description": "The path field for the volume",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateInstanceGroup",
             "description": "Updates a vm group",
             "isasync": false,
-            "name": "updateInstanceGroup",
+            "related": "createInstanceGroup",
             "params": [
                 {
-                    "description": "new instance group name",
+                    "name": "id",
+                    "description": "Instance group ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "required": true,
+                    "related": "createInstanceGroup,updateInstanceGroup"
                 },
                 {
-                    "description": "Instance group ID",
+                    "name": "name",
+                    "description": "new instance group name",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "createInstanceGroup,updateInstanceGroup",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 }
             ],
-            "related": "createInstanceGroup",
             "response": [
                 {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the instance group",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project ID of the instance group",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the instance group",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the instance group",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the instance group",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the instance group",
                     "name": "id",
+                    "description": "the ID of the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "time and date the instance group was created",
+                    "name": "project",
+                    "description": "the project name of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "time and date the instance group was created",
                     "type": "date"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project ID of the instance group",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listUcsManagers",
             "description": "List ucs manager",
             "isasync": false,
-            "name": "listUcsManagers",
+            "related": "addUcsManager",
             "params": [
                 {
-                    "description": "the zone id",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ID of the ucs manager",
-                    "length": 255,
                     "name": "id",
-                    "related": "addUcsManager,listUcsManagers",
+                    "description": "the ID of the ucs manager",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listUcsManagers,addUcsManager"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addUcsManager",
             "response": [
                 {
-                    "description": "the name of ucs manager",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID of ucs manager",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the url of ucs manager",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ucs manager",
                     "name": "id",
+                    "description": "the ID of the ucs manager",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of ucs manager",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID of ucs manager",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of ucs manager",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteLdapConfiguration",
+            "description": "Remove an Ldap Configuration",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "addLdapConfiguration",
+            "params": [
+                {
+                    "name": "port",
+                    "description": "port",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostname",
+                    "description": "Hostname",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "linked domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains,listDomains"
+                }
+            ],
+            "response": [
+                {
+                    "name": "port",
+                    "description": "port teh ldap server is running on",
+                    "type": "int"
+                },
+                {
+                    "name": "domainid",
+                    "description": "linked domain",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "name of the host running the ldap server",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "changeServiceForRouter",
             "description": "Upgrades domain router to a new service offering",
             "isasync": false,
-            "name": "changeServiceForRouter",
+            "related": "listRouters,destroyRouter,listInternalLoadBalancerVMs",
             "params": [
                 {
-                    "description": "the service offering ID to apply to the domain router",
-                    "length": 255,
                     "name": "serviceofferingid",
-                    "related": "updateServiceOffering,listServiceOfferings",
+                    "description": "the service offering ID to apply to the domain router",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateServiceOffering,listServiceOfferings"
                 },
                 {
-                    "description": "The ID of the router",
-                    "length": 255,
                     "name": "id",
-                    "related": "listInternalLoadBalancerVMs,changeServiceForRouter,destroyRouter,listRouters",
+                    "description": "The ID of the router",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "changeServiceForRouter,listRouters,destroyRouter,listInternalLoadBalancerVMs"
                 }
             ],
-            "related": "listInternalLoadBalancerVMs,destroyRouter,listRouters",
             "response": [
                 {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the second IPv6 DNS for the router",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the router template requires upgrader",
-                    "name": "requiresupgrade",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with the router",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the state of the router",
-                    "name": "state",
-                    "type": "state"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding link local network",
-                    "name": "linklocalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of template",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the router",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the router",
                     "name": "podid",
+                    "description": "the Pod ID for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
+                    "name": "hostname",
+                    "description": "the hostname for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
                     "type": "string"
                 },
                 {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the host ID for the router",
-                    "name": "hostid",
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the router",
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the id of the router",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the router was created",
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date and time the router was created",
                     "type": "date"
                 },
                 {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
                     "type": "string"
                 },
                 {
-                    "description": "the version of scripts",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
                     "name": "scriptsversion",
+                    "description": "the version of scripts",
                     "type": "string"
                 },
                 {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
+                    "name": "version",
+                    "description": "the version of template",
                     "type": "string"
                 },
                 {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the router",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the router",
                     "name": "zonename",
+                    "description": "the Zone name for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the corresponding guest network",
+                    "name": "hostid",
+                    "description": "the host ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
                     "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the router",
+                    "type": "state"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
+                    "type": "boolean"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Remove an Ldap Configuration",
-            "isasync": false,
-            "name": "deleteLdapConfiguration",
-            "params": [
-                {
-                    "description": "Hostname",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "addLdapConfiguration",
-            "response": [
-                {
-                    "description": "hostname",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "port",
-                    "name": "port",
-                    "type": "int"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
+            "name": "updateVolume",
             "description": "Updates the volume.",
             "isasync": true,
-            "name": "updateVolume",
+            "related": "listVolumes,migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
             "params": [
                 {
+                    "name": "path",
                     "description": "The path of the volume",
+                    "type": "string",
                     "length": 255,
-                    "name": "path",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
+                    "name": "state",
                     "description": "The state of the volume",
+                    "type": "string",
                     "length": 255,
-                    "name": "state",
                     "required": false,
-                    "since": "4.3",
-                    "type": "string"
+                    "since": "4.3"
                 },
                 {
+                    "name": "storageid",
                     "description": "Destination storage pool UUID for the volume",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
                     "required": false,
                     "since": "4.3",
-                    "type": "uuid"
+                    "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
                 },
                 {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
                     "description": "the ID of the disk volume",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "listVolumes,updateVolume,attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
                     "required": false,
-                    "type": "uuid"
+                    "related": "listVolumes,updateVolume,migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
                 },
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the volume to the end user or not.",
-                    "length": 255,
-                    "name": "displayvolume",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
+                    "name": "chaininfo",
                     "description": "The chain info of the volume",
+                    "type": "string",
                     "length": 255,
-                    "name": "chaininfo",
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                }
-            ],
-            "related": "listVolumes,attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-            "response": [
-                {
-                    "description": "the path of the volume",
-                    "name": "path",
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the date the disk volume was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "ID of the disk offering",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the service offering for root disk",
-                    "name": "serviceofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the disk offering",
-                    "name": "diskofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the disk volume",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
-                    "type": "date"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
                     "name": "displayvolume",
-                    "type": "boolean"
-                },
+                    "description": "an optional field, whether to the display the volume to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
                 {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
                     "type": "string"
                 },
                 {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
                     "type": "long"
                 },
                 {
-                    "description": "need quiesce vm or not when taking snapshot",
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
                     "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
                     "type": "boolean"
                 },
                 {
-                    "description": "the status of the volume",
-                    "name": "status",
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
                     "type": "string"
                 },
                 {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
                     "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
                     "type": "long"
                 },
                 {
-                    "description": "the boolean state of whether the volume is destroyed or not",
-                    "name": "destroyed",
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "id of the virtual machine",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
+                    "name": "size",
+                    "description": "size of the disk volume",
                     "type": "long"
                 },
                 {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
                     "type": "string"
                 },
                 {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists traffic types of a given physical network.",
-            "isasync": false,
-            "name": "listTrafficTypes",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "listNetworkServiceProviders",
-            "response": [
-                {
-                    "description": "true if individual services can be enabled/disabled",
-                    "name": "canenableindividualservice",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
+                    "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
                     "type": "string"
                 },
                 {
-                    "description": "services for this provider",
-                    "name": "servicelist",
-                    "type": "list"
-                },
-                {
-                    "description": "the destination physical network",
-                    "name": "destinationphysicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network provider",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "uuid of the network provider",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the provider name",
-                    "name": "name",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Adds secondary storage.",
-            "isasync": false,
-            "name": "addSecondaryStorage",
-            "params": [
-                {
-                    "description": "the Zone ID for the secondary storage",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the URL for the secondary storage",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "addImageStoreS3,updateCloudToUseObjectStore,listSwifts,listImageStores",
-            "response": [
-                {
-                    "description": "the protocol of the image store",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the image store",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the scope of the image store",
-                    "name": "scope",
-                    "type": "scopetype"
-                },
-                {
-                    "description": "the provider name of the image store",
-                    "name": "providername",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the image store",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the image store",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
-                },
-                {
-                    "description": "the Zone ID of the image store",
-                    "name": "zoneid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Updates properties of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. Therefore, stop the VM manually before issuing this call.",
-            "isasync": false,
-            "name": "updateVirtualMachine",
-            "params": [
-                {
-                    "description": "group of the virtual machine",
-                    "length": 255,
-                    "name": "group",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter",
-                    "length": 255,
-                    "name": "securitygroupnames",
-                    "related": "createSecurityGroup",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "user generated name",
-                    "length": 255,
-                    "name": "displayname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 2KB of data after base64 encoding. Using HTTP POST(via POST body), you can send up to 32K of data after base64 encoding.",
-                    "length": 32768,
-                    "name": "userdata",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS type that best represents this VM.",
-                    "length": 255,
-                    "name": "ostypeid",
-                    "related": "addGuestOs,listOsTypes",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "new host name of the vm. The VM has to be stopped/started for this update to take affect",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled for the virtual machine, false otherwise",
-                    "length": 255,
-                    "name": "haenable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field, whether to the display the vm to the end user or not.",
-                    "length": 255,
-                    "name": "displayvm",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Details in key/value pairs.",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm",
-                    "length": 255,
-                    "name": "instancename",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,updateVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list of security group ids to be applied on the virtual machine.",
-                    "length": 255,
-                    "name": "securitygroupids",
-                    "related": "createSecurityGroup",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "true if VM contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "length": 255,
-                    "name": "isdynamicallyscalable",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-            "response": [
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
                     "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
+                    "name": "storagetype",
+                    "description": "shared or local storage",
                     "type": "string"
                 },
                 {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
                     "name": "created",
+                    "description": "the date the disk volume was created",
                     "type": "date"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
                     "name": "diskofferingname",
+                    "description": "name of the disk offering",
                     "type": "string"
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
                     "type": "long"
                 },
                 {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
                     "type": "string"
                 },
                 {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
                     "type": "long"
                 },
                 {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
+                    "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
+                    "type": "string"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "zonename",
+                    "description": "name of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listTrafficTypes",
+            "description": "Lists traffic types of a given physical network.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "listNetworkServiceProviders",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "the provider name",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "uuid of the network provider",
+                    "type": "string"
+                },
+                {
+                    "name": "servicelist",
+                    "description": "services for this provider",
+                    "type": "list"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "destinationphysicalnetworkid",
+                    "description": "the destination physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network provider",
+                    "type": "string"
+                },
+                {
+                    "name": "canenableindividualservice",
+                    "description": "true if individual services can be enabled/disabled",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "updateAccount",
             "description": "Updates account information for the authenticated user",
             "isasync": false,
-            "name": "updateAccount",
+            "related": "listAccounts,enableAccount,listAccounts,disableAccount,createAccount",
             "params": [
                 {
-                    "description": "details for account used to store specific parameters",
+                    "name": "domainid",
+                    "description": "the ID of the domain where the account exists",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "accountdetails",
                     "required": false,
+                    "related": "listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "Network domain for the account's networks; empty string will update domainName with NULL value",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for account used to store specific parameters",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "Account id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateAccount,listAccounts,enableAccount,listAccounts,disableAccount,createAccount"
+                },
+                {
+                    "name": "account",
+                    "description": "the current account name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "newname",
+                    "description": "new name for the account",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
+                    "type": "list"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for the account",
                     "type": "map"
                 },
                 {
-                    "description": "Account id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "disableAccount,listAccounts,listAccounts,enableAccount,updateAccount,createAccount",
-                    "required": false,
-                    "type": "uuid"
+                    "name": "state",
+                    "description": "the state of the account",
+                    "type": "string"
                 },
                 {
-                    "description": "Network domain for the account's networks; empty string will update domainName with NULL value",
-                    "length": 255,
                     "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the current account name",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain where the account exists",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "new name for the account",
-                    "length": 255,
-                    "name": "newname",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "disableAccount,listAccounts,listAccounts,enableAccount,createAccount",
-            "response": [
-                {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this account",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
                     "description": "the network domain",
-                    "name": "networkdomain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which can be created by this account",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this account",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "account type (admin, domain-admin, user)",
                     "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
                     "type": "short"
                 },
                 {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of acl groups that account belongs to",
-                    "name": "groups",
-                    "type": "list"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots which can be stored by this account",
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
+                    "type": "string"
+                },
+                {
                     "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
+                    "name": "id",
+                    "description": "the id of the account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
                     "type": "integer"
                 },
                 {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the account",
-                    "name": "name",
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
+                    "type": "long"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of vpcs available to be created for this account",
-                    "name": "vpcavailable",
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
+                    "name": "domain",
+                    "description": "name of the Domain the account belongs too",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of public ip addresses this account can acquire",
                     "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects the account can own",
-                    "name": "projectlimit",
+                    "name": "name",
+                    "description": "the name of the account",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
                     "type": "long"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by account",
+                    "type": "long"
                 },
                 {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "true if account is default, false otherwise",
                     "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the list of users associated with account",
+                    "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
+                },
+                {
+                    "name": "defaultzoneid",
+                    "description": "the default zone of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
+                    "type": "long"
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
+                    "type": "boolean"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "id of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
                     "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the date and time the user account was created",
+                            "name": "username",
+                            "description": "the user name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secretkey",
+                            "description": "the secret key of the user",
+                            "type": "string"
+                        },
+                        {
                             "name": "created",
+                            "description": "the date and time the user account was created",
                             "type": "date"
                         },
                         {
-                            "description": "the name of the role",
-                            "name": "rolename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
                             "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
                             "type": "boolean"
                         },
                         {
-                            "description": "the user name",
-                            "name": "username",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the secret key of the user",
-                            "name": "secretkey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the user",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user firstname",
-                            "name": "firstname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account name of the user",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the api key of the user",
-                            "name": "apikey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user state",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user email address",
-                            "name": "email",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the timezone user was created in",
-                            "name": "timezone",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the role",
-                            "name": "roleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if user is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the user ID",
                             "name": "id",
+                            "description": "the user ID",
                             "type": "string"
                         },
                         {
-                            "description": "the account type of the user",
+                            "name": "account",
+                            "description": "the account name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "apikey",
+                            "description": "the api key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the user state",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roleid",
+                            "description": "the ID of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "firstname",
+                            "description": "the user firstname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                            "type": "string"
+                        },
+                        {
+                            "name": "timezone",
+                            "description": "the timezone user was created in",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roletype",
+                            "description": "the type of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
+                            "type": "string"
+                        },
+                        {
                             "name": "accounttype",
+                            "description": "the account type of the user",
                             "type": "short"
                         },
                         {
-                            "description": "the type of the role",
-                            "name": "roletype",
+                            "name": "lastname",
+                            "description": "the user lastname",
                             "type": "string"
+                        },
+                        {
+                            "name": "rolename",
+                            "description": "the name of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
+                            "type": "boolean"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the default zone of the account",
-                    "name": "defaultzoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by account",
-                    "name": "networktotal",
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
                     "type": "long"
                 },
                 {
-                    "description": "details for the account",
-                    "name": "accountdetails",
-                    "type": "map"
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
+                    "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "addSecondaryStorage",
+            "description": "Adds secondary storage.",
+            "isasync": false,
+            "related": "listSwifts,updateCloudToUseObjectStore,addImageStoreS3,listImageStores",
+            "params": [
+                {
+                    "name": "url",
+                    "description": "the URL for the secondary storage",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the secondary storage",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "providername",
+                    "description": "the provider name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the image store",
+                    "type": "scopetype"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the image store",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateVirtualMachine",
+            "description": "Updates properties of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. Therefore, stop the VM manually before issuing this call.",
+            "isasync": false,
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
+            "params": [
+                {
+                    "name": "group",
+                    "description": "group of the virtual machine",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "new host name of the vm. The VM has to be stopped/started for this update to take affect",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "details",
+                    "description": "Details in key/value pairs.",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "userdata",
+                    "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 2KB of data after base64 encoding. Using HTTP POST(via POST body), you can send up to 32K of data after base64 encoding.",
+                    "type": "string",
+                    "length": 32768,
+                    "required": false
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type that best represents this VM.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listOsTypes,addGuestOs"
+                },
+                {
+                    "name": "dhcpoptionsnetworklist",
+                    "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field, whether to the display the vm to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "securitygroupids",
+                    "description": "list of security group ids to be applied on the virtual machine.",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "createSecurityGroup"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled for the virtual machine, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "securitygroupnames",
+                    "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "createSecurityGroup"
+                },
+                {
+                    "name": "cleanupdetails",
+                    "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,updateVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if VM contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "name": "disableAccount",
             "description": "Disables an account",
             "isasync": true,
-            "name": "disableAccount",
+            "related": "listAccounts,enableAccount,listAccounts,createAccount",
             "params": [
                 {
-                    "description": "Account id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "disableAccount,listAccounts,listAccounts,enableAccount,createAccount",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Disables specified account.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If true, only lock the account; else disable the account",
-                    "length": 255,
                     "name": "lock",
-                    "required": true,
-                    "type": "boolean"
+                    "description": "If true, only lock the account; else disable the account",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "Disables specified account in this domain.",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomains,listDomainChildren,listDomains",
+                    "description": "Disables specified account in this domain.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "Disables specified account.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "Account id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAccounts,enableAccount,listAccounts,disableAccount,createAccount"
                 }
             ],
-            "related": "listAccounts,listAccounts,enableAccount,createAccount",
             "response": [
                 {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
                     "type": "long"
                 },
                 {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of projects the account can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
                     "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
+                    "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
+                    "type": "list"
+                },
+                {
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this account can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by account",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "true if account is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of users associated with account",
                     "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the user state",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user name",
                             "name": "username",
+                            "description": "the user name",
                             "type": "string"
                         },
                         {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "timezone",
+                            "description": "the timezone user was created in",
+                            "type": "string"
+                        },
+                        {
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "apikey",
+                            "description": "the api key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "firstname",
+                            "description": "the user firstname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roletype",
+                            "description": "the type of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "lastname",
+                            "description": "the user lastname",
+                            "type": "string"
+                        },
+                        {
                             "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
                             "type": "boolean"
                         },
                         {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user firstname",
-                            "name": "firstname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account name of the user",
                             "name": "account",
+                            "description": "the account name of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the role",
-                            "name": "roleid",
+                            "name": "id",
+                            "description": "the user ID",
                             "type": "string"
                         },
                         {
-                            "description": "the account type of the user",
-                            "name": "accounttype",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the timezone user was created in",
-                            "name": "timezone",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the role",
-                            "name": "rolename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the date and time the user account was created",
                             "name": "created",
+                            "description": "the date and time the user account was created",
                             "type": "date"
                         },
                         {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
+                            "name": "state",
+                            "description": "the user state",
                             "type": "string"
                         },
                         {
-                            "description": "the secret key of the user",
+                            "name": "roleid",
+                            "description": "the ID of the role",
+                            "type": "string"
+                        },
+                        {
                             "name": "secretkey",
+                            "description": "the secret key of the user",
                             "type": "string"
                         },
                         {
-                            "description": "true if user is default, false otherwise",
                             "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the api key of the user",
-                            "name": "apikey",
-                            "type": "string"
+                            "name": "accounttype",
+                            "description": "the account type of the user",
+                            "type": "short"
                         },
                         {
-                            "description": "the user email address",
-                            "name": "email",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the role",
-                            "name": "roletype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the user",
-                            "name": "domain",
+                            "name": "rolename",
+                            "description": "the name of the role",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of acl groups that account belongs to",
-                    "name": "groups",
-                    "type": "list"
-                },
-                {
-                    "description": "the default zone of the account",
                     "name": "defaultzoneid",
+                    "description": "the default zone of the account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the account",
-                    "name": "name",
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "details for the account",
-                    "name": "accountdetails",
-                    "type": "map"
-                },
-                {
-                    "description": "the total number of templates which can be created by this account",
                     "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
+                    "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
+                    "type": "string"
+                },
+                {
                     "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots which can be stored by this account",
-                    "name": "snapshotlimit",
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "account type (admin, domain-admin, user)",
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
+                    "type": "string"
+                },
+                {
                     "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
                     "type": "short"
                 },
                 {
-                    "description": "the total number of cpu cores available to be created for this account",
+                    "name": "domain",
+                    "description": "name of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
                     "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
+                    "name": "domainid",
+                    "description": "id of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
                     "type": "integer"
                 },
                 {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
+                    "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this account",
                     "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of vpcs available to be created for this account",
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for the account",
+                    "type": "map"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
+                    "type": "long"
+                },
+                {
                     "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
+                    "type": "boolean"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listDomains",
             "description": "Lists domains and provides detailed information for listed domains",
             "isasync": false,
-            "name": "listDomains",
+            "related": "listDomainChildren,listDomains",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "List domain by domain name.",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List domains by domain level.",
-                    "length": 255,
-                    "name": "level",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List domain by domain ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listDomains,listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "id",
+                    "description": "List domain by domain ID.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "listall",
                     "required": false,
-                    "type": "boolean"
+                    "related": "listDomainChildren,listDomains,listDomains"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "List domain by domain name.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "level",
+                    "description": "List domains by domain level.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "details",
+                    "description": "comma separated list of domain details requested, value can be a list of [ all, resource, min]",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listDomainChildren,listDomains",
             "response": [
                 {
-                    "description": "the total number of projects available for administration by this domain",
-                    "name": "projectavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the domain can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the domain can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this domain",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects being administrated by this domain",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the domain",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this domain to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores the domain can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this domain",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks the domain can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this domain",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this domain",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this domain",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the domain can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by domain",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the domain can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by domain",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) owned by domain",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the domain",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the level of the domain",
                     "name": "level",
+                    "description": "the level of the domain",
                     "type": "integer"
                 },
                 {
-                    "description": "the total volume being used by this domain",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this domain",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this domain",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the parent domain",
-                    "name": "parentdomainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this domain",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by domain",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by domain",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines available for this domain to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects the domain can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this domain can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this domain",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this domain",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "whether the domain has one or more sub-domains",
                     "name": "haschild",
+                    "description": "whether the domain has one or more sub-domains",
                     "type": "boolean"
                 },
                 {
-                    "description": "the total memory (in MB) available to be created for this domain",
-                    "name": "memoryavailable",
+                    "name": "id",
+                    "description": "the ID of the domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots stored by this domain",
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "projectlimit",
+                    "description": "the total number of projects the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this domain",
+                    "type": "string"
+                },
+                {
                     "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of cpu cores owned by domain",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the path of the domain",
-                    "name": "path",
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores available to be created for this domain",
-                    "name": "cpuavailable",
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots available for this domain",
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
                     "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of public ip addresses allocated for this domain",
-                    "name": "iptotal",
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total volume which can be used by this domain",
-                    "name": "volumelimit",
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the parent domain",
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this domain to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this domain can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this domain to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "parentdomainid",
+                    "description": "the domain ID of the parent domain",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by domain",
+                    "type": "float"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the domain",
+                    "type": "string"
+                },
+                {
                     "name": "parentdomainname",
+                    "description": "the domain name of the parent domain",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the domain can own",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateNetwork",
             "description": "Updates a network",
             "isasync": true,
-            "name": "updateNetwork",
+            "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork",
             "params": [
                 {
-                    "description": "network domain",
-                    "length": 255,
-                    "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Force update even if CIDR type is different",
-                    "length": 255,
-                    "name": "changecidr",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "length": 255,
-                    "name": "displaynetwork",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "network offering ID",
-                    "length": 255,
-                    "name": "networkofferingid",
-                    "related": "listNetworkOfferings",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the network",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createNetwork,updateNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the new display text for the network",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the new name for the network",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "CIDR for guest VMs, CloudStack allocates IPs to guest VMs only from this CIDR",
-                    "length": 255,
                     "name": "guestvmcidr",
-                    "required": false,
-                    "type": "string"
+                    "description": "CIDR for guest VMs, CloudStack allocates IPs to guest VMs only from this CIDR",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "name": "name",
+                    "description": "the new name for the network",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "updateinsequence",
+                    "description": "if true, we will update the routers one after the other. applicable only for redundant router based networks using virtual router as provider",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "network domain",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "forced",
+                    "description": "Setting this to true will cause a forced network update,",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "changecidr",
+                    "description": "Force update even if CIDR type is different",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworkOfferings"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the new display text for the network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
             "response": [
                 {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the network",
                     "name": "id",
+                    "description": "the id of the network",
                     "type": "string"
                 },
                 {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
                     "type": "string"
                 },
                 {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
                     "type": "boolean"
                 },
                 {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the network belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the network",
                     "name": "zoneid",
+                    "description": "zone id of the network",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the network",
                     "name": "dns1",
+                    "description": "the first DNS for the network",
                     "type": "string"
                 },
                 {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
+                    "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
                     "type": "string"
                 },
                 {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                    "name": "zonesnetworkspans",
-                    "type": "set"
-                },
-                {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
                     "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
                     "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
                     "type": "boolean"
                 },
                 {
-                    "description": "the list of services",
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
                     "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the service provider name",
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
                             "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the physical network this belongs to",
                                     "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the provider name",
                                     "name": "name",
+                                    "description": "the provider name",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "services for this provider",
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "servicelist",
+                                    "description": "services for this provider",
                                     "type": "list"
                                 },
                                 {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "type": "boolean"
                                 },
                                 {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
                                     "name": "name",
+                                    "description": "the capability name",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
+                            ]
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
                     "type": "boolean"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the network's gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "related",
+                    "description": "related to what other network configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
+                    "type": "string"
+                },
+                {
+                    "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "type": "string"
+                },
+                {
+                    "name": "externalid",
+                    "description": "The external id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the network's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                    "type": "set"
+                },
+                {
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listUsageTypes",
             "description": "List Usage Types",
             "isasync": false,
-            "name": "listUsageTypes",
+            "related": "",
             "params": [
 
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "usage type",
-                    "name": "usagetypeid",
-                    "type": "integer"
-                },
-                {
+                    "name": "description",
                     "description": "description of usage type",
-                    "name": "description",
                     "type": "string"
+                },
+                {
+                    "name": "usagetypeid",
+                    "description": "usage type",
+                    "type": "integer"
                 }
             ]
         },
         {
-            "description": "Lists all network ACLs",
-            "isasync": false,
-            "name": "listNetworkACLLists",
-            "params": [
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Lists network ACL with the specified ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createNetworkACLList,listNetworkACLLists",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list network ACLs by specified name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list network ACLs by network ID",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list network ACLs by VPC ID",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "createNetworkACLList",
-            "response": [
-                {
-                    "description": "Description of the ACL",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the Name of the ACL",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "is ACL for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Id of the VPC this ACL is associated with",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ACL",
-                    "name": "id",
-                    "type": "string"
-                }
-            ]
-        },
-        {
+            "name": "deleteTemplate",
             "description": "Deletes a template from the system. All virtual machines using the deleted template will not be affected.",
             "isasync": true,
-            "name": "deleteTemplate",
             "params": [
                 {
-                    "description": "the ID of zone of the template",
+                    "name": "forced",
+                    "description": "Force delete a template.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
                     "required": false,
-                    "type": "uuid"
+                    "since": "4.9+"
                 },
                 {
-                    "description": "the ID of the template",
+                    "name": "zoneid",
+                    "description": "the ID of zone of the template",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
                     "name": "id",
-                    "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,createTemplate,registerIso,registerIso,listIsos,createTemplate,copyIso",
+                    "description": "the ID of the template",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createTemplate,registerIso,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
                     "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listNetworkACLLists",
+            "description": "Lists all network ACLs",
+            "isasync": false,
+            "related": "createNetworkACLList",
+            "params": [
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "networkid",
+                    "description": "list network ACLs by network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "name",
+                    "description": "list network ACLs by specified name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "list network ACLs by VPC ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "Lists network ACL with the specified ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createNetworkACLList,listNetworkACLLists"
+                }
+            ],
+            "response": [
+                {
+                    "name": "fordisplay",
+                    "description": "is ACL for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "name",
+                    "description": "the Name of the ACL",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "Id of the VPC this ACL is associated with",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the ACL",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "Description of the ACL",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteVPC",
             "description": "Deletes a VPC",
             "isasync": true,
-            "name": "deleteVPC",
             "params": [
                 {
-                    "description": "the ID of the VPC",
-                    "length": 255,
                     "name": "id",
-                    "related": "restartVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
+                    "description": "the ID of the VPC",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Updates site to site vpn local gateway",
-            "isasync": true,
             "name": "updateVpnGateway",
+            "description": "Updates site to site vpn local gateway",
+            "since": "4.4",
+            "isasync": true,
+            "related": "listVpnGateways,createVpnGateway",
             "params": [
                 {
-                    "description": "id of customer gateway",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVpnGateways,updateVpnGateway,createVpnGateway",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
                     "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "name": "id",
+                    "description": "id of customer gateway",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "updateVpnGateway,listVpnGateways,createVpnGateway"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 }
             ],
-            "related": "listVpnGateways,createVpnGateway",
             "response": [
                 {
-                    "description": "is vpn gateway for display to the regular user",
+                    "name": "publicip",
+                    "description": "the public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "the vpc id of this gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is vpn gateway for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
                     "name": "removed",
+                    "description": "the date and time the host was removed",
                     "type": "date"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpc id of this gateway",
-                    "name": "vpcid",
-                    "type": "string"
                 }
-            ],
-            "since": "4.4"
+            ]
         },
         {
+            "name": "releaseDedicatedGuestVlanRange",
             "description": "Releases a dedicated guest vlan range to the system",
             "isasync": true,
-            "name": "releaseDedicatedGuestVlanRange",
             "params": [
                 {
-                    "description": "the ID of the dedicated guest vlan range",
-                    "length": 255,
                     "name": "id",
-                    "related": "",
+                    "description": "the ID of the dedicated guest vlan range",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteSecurityGroup",
             "description": "Deletes security group",
             "isasync": false,
-            "name": "deleteSecurityGroup",
             "params": [
                 {
-                    "description": "The ID of the security group. Mutually exclusive with name parameter",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createSecurityGroup",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the account of the security group. Must be specified with domain ID",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "the account of the security group. Must be specified with domain ID",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the domain ID of account owning the security group",
+                    "name": "id",
+                    "description": "The ID of the security group. Mutually exclusive with name parameter",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
                     "required": false,
-                    "type": "uuid"
+                    "related": "createSecurityGroup"
                 },
                 {
-                    "description": "The ID of the security group. Mutually exclusive with id parameter",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "The ID of the security group. Mutually exclusive with id parameter",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the project of the security group",
-                    "length": 255,
                     "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
+                    "description": "the project of the security group",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of account owning the security group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "migrateVirtualMachine",
             "description": "Attempts Migration of a VM to a different host or Root volume of the vm to a different storage pool",
             "isasync": true,
-            "name": "migrateVirtualMachine",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "Destination Host ID to migrate VM to. Required for live migrating a VM from host to host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Destination storage pool ID to migrate VM volumes to. Required for migrating the root disk volume",
-                    "length": 255,
                     "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
+                    "description": "Destination storage pool ID to migrate VM volumes to. Required for migrating the root disk volume",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "hostid",
+                    "description": "Destination Host ID to migrate VM to. Required for live migrating a VM from host to host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,migrateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
                     "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
                             "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
                             "type": "set"
                         },
                         {
-                            "description": "the account owning the security group",
-                            "name": "account",
+                            "name": "name",
+                            "description": "the name of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
                             "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
                             "response": [
                                 {
-                                    "description": "the protocol of the security group rule",
                                     "name": "protocol",
+                                    "description": "the protocol of the security group rule",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the starting IP of the security group rule",
                                     "name": "startport",
+                                    "description": "the starting IP of the security group rule",
                                     "type": "integer"
                                 },
                                 {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
                                     "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the list of resource tags associated with the rule",
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
                                     "response": [
                                         {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
                                             "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
                                             "type": "string"
                                         }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
+                                    ]
                                 }
-                            ],
-                            "type": "set"
+                            ]
                         },
                         {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
                             "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
                             "response": [
                                 {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
                                     "name": "value",
+                                    "description": "tag value",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the project name where tag belongs to",
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "project",
+                                    "description": "the project name where tag belongs to",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the ID of the domain associated with the tag",
                                     "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "set"
+                            ]
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
+                    "name": "project",
+                    "description": "the project name of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
                     "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
+                    "name": "name",
+                    "description": "the name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
                 },
                 {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the project id of the vm",
                     "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
                 },
                 {
-                    "description": "true if high-availability is enabled, false otherwise",
                     "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
                     "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
                 }
             ]
         },
         {
+            "name": "createTemplate",
             "description": "Creates a template of a virtual machine. The virtual machine must be in a STOPPED state. A template created from this command is automatically designated as a private template visible to the account that created it.",
             "isasync": true,
-            "name": "createTemplate",
+            "related": "registerIso,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "32 or 64 bit",
-                    "length": 255,
-                    "name": "bits",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Optional, VM ID. If this presents, it is going to create a baremetal template for VM this ID refers to. This is only for VM whose hypervisor type is BareMetal",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if the template supports the password reset feature; default is false",
-                    "length": 255,
-                    "name": "passwordenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "create template for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Optional, only for baremetal hypervisor. The directory name where template stored on CIFS server",
-                    "length": 2048,
-                    "name": "url",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "the name of the template",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the ID of the snapshot the template is being created from. Either this parameter, or volumeId has to be passed in",
+                    "name": "bits",
+                    "description": "32 or 64 bit",
+                    "type": "integer",
                     "length": 255,
-                    "name": "snapshotid",
-                    "related": "revertSnapshot",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "true if the template requres HVM, false otherwise",
+                    "name": "passwordenabled",
+                    "description": "true if the template supports the password reset feature; default is false",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "requireshvm",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if the template requres HVM, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the tag for this template.",
+                    "name": "volumeid",
+                    "description": "the ID of the disk volume the template is being created from. Either this parameter, or snapshotId has to be passed in",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "templatetag",
                     "required": false,
+                    "related": "listVolumes,migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the template. This is usually used for display purposes.",
+                    "type": "string",
+                    "length": 4096,
+                    "required": true
+                },
+                {
+                    "name": "projectid",
+                    "description": "create template for the project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "url",
+                    "description": "Optional, only for baremetal hypervisor. The directory name where template stored on CIFS server",
+                    "type": "string",
+                    "length": 2048,
+                    "required": false
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "the ID of the snapshot the template is being created from. Either this parameter, or volumeId has to be passed in",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "revertSnapshot"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS Type that best represents the OS of this template.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listOsTypes,addGuestOs"
+                },
+                {
+                    "name": "templatetag",
+                    "description": "the tag for this template.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "details",
+                    "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "Optional, VM ID. If this presents, it is going to create a baremetal template for VM this ID refers to. This is only for VM whose hypervisor type is BareMetal",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the template ID",
                     "type": "string"
                 },
                 {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "length": 255,
-                    "name": "isdynamicallyscalable",
-                    "required": false,
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string"
+                },
+                {
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
                     "type": "boolean"
                 },
                 {
-                    "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
-                    "length": 255,
                     "name": "details",
-                    "required": false,
+                    "description": "additional key/value details tied with template",
                     "type": "map"
                 },
                 {
-                    "description": "the ID of the OS Type that best represents the OS of this template.",
-                    "length": 255,
-                    "name": "ostypeid",
-                    "related": "addGuestOs,listOsTypes",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "length": 255,
-                    "name": "isfeatured",
-                    "required": false,
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the display text of the template. This is usually used for display purposes.",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if this template is a public template, false otherwise",
-                    "length": 255,
                     "name": "ispublic",
-                    "required": false,
+                    "description": "true if this template is a public template, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the disk volume the template is being created from. Either this parameter, or snapshotId has to be passed in",
-                    "length": 255,
-                    "name": "volumeid",
-                    "related": "listVolumes,attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,registerIso,registerIso,listIsos,createTemplate,copyIso",
-            "response": [
-                {
-                    "description": "the date this template was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the size of the template",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the template",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the template display text",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the template",
-                    "name": "templatetype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the OS type for this template.",
                     "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
                     "type": "string"
                 },
                 {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the format of the template.",
                     "name": "format",
+                    "description": "the format of the template.",
                     "type": "imageformat"
                 },
                 {
-                    "description": "the date this template was removed",
-                    "name": "removed",
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this template was created",
                     "type": "date"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "checksum of the template",
-                    "name": "checksum",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the template",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the template",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "additional key/value details tied with template",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone for this template",
                     "name": "zoneid",
+                    "description": "the ID of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date this template was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "the size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatetype",
+                    "description": "the type of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the template display text",
+                    "type": "string"
+                },
+                {
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listBaremetalRct",
             "description": "list baremetal rack configuration",
             "isasync": false,
-            "name": "listBaremetalRct",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
             "related": "addBaremetalRct",
-            "response": [
-                {
-                    "description": "url",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "id of rct",
-                    "name": "id",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists dedicated clusters.",
-            "isasync": false,
-            "name": "listDedicatedClusters",
             "params": [
                 {
-                    "description": "list dedicated clusters by affinity group",
-                    "length": 255,
-                    "name": "affinitygroupid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the account associated with the cluster. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the cluster",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "the ID of the cluster",
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster,updateCluster",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the dedicated resource",
+                    "name": "url",
+                    "description": "url",
+                    "type": "string"
+                },
+                {
                     "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Account ID of the cluster",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the cluster",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the cluster",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the Dedication Affinity Group ID of the cluster",
-                    "name": "affinitygroupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the cluster",
-                    "name": "domainid",
+                    "description": "id of rct",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "uploadCustomCertificate",
             "description": "Uploads a custom certificate for the console proxy VMs to use for SSL. Can be used to upload a single certificate signed by a known CA. Can also be used, through multiple calls, to upload a chain of certificates from CA to the custom certificate itself.",
             "isasync": true,
-            "name": "uploadCustomCertificate",
+            "related": "",
             "params": [
                 {
-                    "description": "An integer providing the location in a chain that the certificate will hold. Usually, this can be left empty. When creating a chain, the top level certificate should have an ID of 1, with each step in the chain incrementing by one. Example, CA with id = 1, Intermediate CA with id = 2, Site certificate with ID = 3",
-                    "length": 255,
-                    "name": "id",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "The private key for the attached certificate.",
-                    "length": 65535,
-                    "name": "privatekey",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "DNS domain suffix that the certificate is granted for.",
-                    "length": 255,
-                    "name": "domainsuffix",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The certificate to be uploaded.",
-                    "length": 65535,
                     "name": "certificate",
-                    "required": true,
-                    "type": "string"
+                    "description": "The certificate to be uploaded.",
+                    "type": "string",
+                    "length": 65535,
+                    "required": true
                 },
                 {
-                    "description": "A name / alias for the certificate.",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "A name / alias for the certificate.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "privatekey",
+                    "description": "The private key for the attached certificate.",
+                    "type": "string",
+                    "length": 65535,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "An integer providing the location in a chain that the certificate will hold. Usually, this can be left empty. When creating a chain, the top level certificate should have an ID of 1, with each step in the chain incrementing by one. Example, CA with id = 1, Intermediate CA with id = 2, Site certificate with ID = 3",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainsuffix",
+                    "description": "DNS domain suffix that the certificate is granted for.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "message of the certificate upload operation",
                     "name": "message",
+                    "description": "message of the certificate upload operation",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listDedicatedClusters",
+            "description": "Lists dedicated clusters.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "the name of the account associated with the cluster. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "list dedicated clusters by affinity group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster,updateCluster"
+                }
+            ],
+            "response": [
+                {
+                    "name": "clustername",
+                    "description": "the name of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the dedicated resource",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the Account ID of the cluster",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listCAProviders",
+            "description": "Lists available certificate authority providers in CloudStack",
+            "since": "4.11.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "List CA service provider by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "the CA service provider name",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the CA service provider",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteVpnCustomerGateway",
             "description": "Delete site to site vpn customer gateway",
             "isasync": true,
-            "name": "deleteVpnCustomerGateway",
             "params": [
                 {
-                    "description": "id of customer gateway",
-                    "length": 255,
                     "name": "id",
-                    "related": "createVpnCustomerGateway,listVpnCustomerGateways",
+                    "description": "id of customer gateway",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listVpnCustomerGateways,createVpnCustomerGateway"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
                     "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "acquirePodIpAddress",
+            "description": "Allocates IP addresses in respective Pod of a Zone",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "podid",
+                    "description": "Pod ID",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                }
+            ],
+            "response": [
+                {
+                    "name": "cidr",
+                    "description": "CIDR of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the pod the  IP address",
+                    "type": "long"
+                },
+                {
+                    "name": "gateway",
+                    "description": "Gateway for Pod ",
+                    "type": "string"
+                },
+                {
+                    "name": "hostmac",
+                    "description": "MAC address of the pod the  IP",
+                    "type": "long"
+                },
+                {
+                    "name": "nicid",
+                    "description": "the ID of the nic",
+                    "type": "long"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "Allocated IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the ID of the pod the  IP address belongs to",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "enableOutOfBandManagementForCluster",
+            "description": "Enables out-of-band management for a cluster",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "disableOutOfBandManagementForHost,disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
+            "params": [
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addCluster,updateCluster"
+                }
+            ],
+            "response": [
+                {
+                    "name": "port",
+                    "description": "the out-of-band management interface port",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the operation result",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
+                    "type": "powerstate"
+                },
+                {
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "address",
+                    "description": "the out-of-band management interface address",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Enables out-of-band management for a cluster",
-            "isasync": true,
-            "name": "enableOutOfBandManagementForCluster",
-            "params": [
-                {
-                    "description": "the ID of the cluster",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster,updateCluster",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "disableOutOfBandManagementForCluster,disableOutOfBandManagementForHost,enableOutOfBandManagementForHost",
-            "response": [
-                {
-                    "description": "the out-of-band management interface address",
-                    "name": "address",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface port",
-                    "name": "port",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface powerState of the host",
-                    "name": "powerstate",
-                    "type": "powerstate"
-                },
-                {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
+            "name": "listPortForwardingRules",
             "description": "Lists all port forwarding rules for an IP address.",
             "isasync": false,
-            "name": "listPortForwardingRules",
+            "related": "updatePortForwardingRule",
             "params": [
                 {
-                    "description": "list only resources belonging to the domain specified",
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
                     "required": false,
-                    "type": "uuid"
+                    "since": "4.4"
                 },
                 {
-                    "description": "list port forwarding rules for certain network",
+                    "name": "id",
+                    "description": "Lists rule with the specified ID.",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "updatePortForwardingRule,listPortForwardingRules"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the ID of IP address of the port forwarding services",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "associateIpAddress,updateIpAddress,listPublicIpAddresses,associateIpAddress"
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "networkid",
-                    "related": "createNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
+                    "description": "list port forwarding rules for certain network",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
                     "since": "4.3",
-                    "type": "uuid"
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
                 },
                 {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Lists rule with the specified ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updatePortForwardingRule,listPortForwardingRules",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of IP address of the port forwarding services",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
                     "name": "listall",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "updatePortForwardingRule",
             "response": [
                 {
-                    "description": "the protocol of the port forwarding rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "privateendport",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
                     "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the guest network the port forwarding rule belongs to",
-                    "name": "networkid",
+                    "name": "id",
+                    "description": "the ID of the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the VM name for the port forwarding rule",
-                    "name": "virtualmachinename",
+                    "name": "privateport",
+                    "description": "the starting port of port forwarding rule's private port range",
                     "type": "string"
                 },
                 {
-                    "description": "the vm ip address for the port forwarding rule",
-                    "name": "vmguestip",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the VM display name for the port forwarding rule",
                     "name": "virtualmachinedisplayname",
+                    "description": "the VM display name for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the public ip address id for the port forwarding rule",
                     "name": "ipaddressid",
+                    "description": "the public ip address id for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "is firewall for display to the regular user",
+                    "name": "networkid",
+                    "description": "the id of the guest network the port forwarding rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "privateendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "publicendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "publicport",
+                    "description": "the starting port of port forwarding rule's public port range",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the public ip address for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinename",
+                    "description": "the VM name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is firewall for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the VM ID for the port forwarding rule",
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "vmguestip",
+                    "description": "the vm ip address for the port forwarding rule",
+                    "type": "string"
+                },
+                {
                     "name": "virtualmachineid",
+                    "description": "the VM ID for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "the public ip address for the port forwarding rule",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "publicendport",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of port forwarding rule's private port range",
-                    "name": "privateport",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the port forwarding rule",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of port forwarding rule's public port range",
-                    "name": "publicport",
+                    "name": "state",
+                    "description": "the state of the rule",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "updateTemplatePermissions",
             "description": "Updates a template visibility permissions. A public template is visible to all accounts within the same domain. A private template is visible only to the owner of the template. A priviledged template is a private template with account permissions added. Only accounts specified under the template permissions are visible to them.",
             "isasync": false,
-            "name": "updateTemplatePermissions",
             "params": [
                 {
-                    "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin",
-                    "length": 255,
-                    "name": "isextractable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "a comma delimited list of accounts. If specified, \"op\" parameter has to be passed in.",
-                    "length": 255,
-                    "name": "accounts",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "permission operator (add, remove, reset)",
-                    "length": 255,
-                    "name": "op",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true for featured template/iso, false otherwise",
-                    "length": 255,
                     "name": "isfeatured",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true for featured template/iso, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "true for public template/iso, false for private templates/isos",
+                    "name": "op",
+                    "description": "permission operator (add, remove, reset)",
+                    "type": "string",
                     "length": 255,
-                    "name": "ispublic",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.",
-                    "length": 255,
-                    "name": "projectids",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the template ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,registerIso,registerIso,listIsos,createTemplate,copyIso",
+                    "description": "the template ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "registerIso,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "projectids",
+                    "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true for public template/iso, false for private templates/isos",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accounts",
+                    "description": "a comma delimited list of accounts. If specified, \"op\" parameter has to be passed in.",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listTrafficMonitors",
             "description": "List traffic monitor Hosts.",
             "isasync": false,
-            "name": "listTrafficMonitors",
+            "related": "addTrafficMonitor",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "zone Id",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone Id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addTrafficMonitor",
             "response": [
                 {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the external firewall",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
                     "name": "ipaddress",
+                    "description": "the management IP address of the external firewall",
                     "type": "string"
                 },
                 {
-                    "description": "the zone ID of the external firewall",
+                    "name": "id",
+                    "description": "the ID of the external firewall",
+                    "type": "string"
+                },
+                {
                     "name": "zoneid",
+                    "description": "the zone ID of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "numretries",
+                    "description": "the number of times to retry requests to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "timeout",
+                    "description": "the timeout (in seconds) for requests to the external firewall",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "resetPasswordForVirtualMachine",
             "description": "Resets the password for virtual machine. The virtual machine must be in a \"Stopped\" state and the template must already support this feature for this command to take effect. [async]",
             "isasync": true,
-            "name": "resetPasswordForVirtualMachine",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,resetPasswordForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
                 },
                 {
 
                 },
                 {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
                     "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
+                            "name": "project",
+                            "description": "the project name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
                             "type": "list"
                         },
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
+                            "name": "id",
+                            "description": "the ID of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the affinity group",
-                            "name": "name",
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the affinity group",
                             "name": "id",
+                            "description": "the ID of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the affinity group",
-                            "name": "type",
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
                             "type": "string"
                         },
                         {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
                             "type": "list"
                         },
                         {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the description of the affinity group",
-                            "name": "description",
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
                     "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
+                            "name": "projectid",
+                            "description": "the project id of the group",
                             "type": "string"
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the security group",
                             "name": "id",
+                            "description": "the ID of the security group",
                             "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                }
+                            ]
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "type": "string"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Updates a port forwarding rule. Only the private port and the virtual machine can be updated.",
-            "isasync": true,
-            "name": "updatePortForwardingRule",
-            "params": [
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
                 },
                 {
-                    "description": "the private port of the port forwarding rule",
-                    "length": 255,
-                    "name": "privateport",
-                    "required": false,
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
                     "type": "integer"
                 },
                 {
-                    "description": "VM guest nic Secondary ip address for the port forwarding rule",
-                    "length": 255,
-                    "name": "vmguestip",
-                    "required": false,
-                    "since": "4.5",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine for the port forwarding rule",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the port forwarding rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "updatePortForwardingRule",
-                    "required": true,
-                    "since": "4.4",
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the starting port of port forwarding rule's private port range",
-                    "name": "privateport",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "privateendport",
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
                     "type": "string"
                 },
                 {
-                    "description": "is firewall for display to the regular user",
-                    "name": "fordisplay",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the public ip address id for the port forwarding rule",
-                    "name": "ipaddressid",
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the port forwarding rule",
-                    "name": "id",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the VM ID for the port forwarding rule",
-                    "name": "virtualmachineid",
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "the vm ip address for the port forwarding rule",
-                    "name": "vmguestip",
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the rule",
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the starting port of port forwarding rule's public port range",
-                    "name": "publicport",
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ending port of port forwarding rule's private port range",
-                    "name": "publicendport",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the VM name for the port forwarding rule",
-                    "name": "virtualmachinename",
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
                     "type": "string"
                 },
                 {
-                    "description": "the VM display name for the port forwarding rule",
-                    "name": "virtualmachinedisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the port forwarding rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address for the port forwarding rule",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the guest network the port forwarding rule belongs to",
-                    "name": "networkid",
-                    "type": "string"
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "listBrocadeVcsDevices",
             "description": "Lists Brocade VCS Switches",
             "isasync": false,
-            "name": "listBrocadeVcsDevices",
+            "related": "",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Brocade VCS switch ID",
-                    "length": 255,
                     "name": "vcsdeviceid",
-                    "related": "listBrocadeVcsDevices",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
+                    "description": "Brocade VCS switch ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "keyword",
                     "required": false,
-                    "type": "string"
+                    "related": "listBrocadeVcsDevices"
                 },
                 {
+                    "name": "pagesize",
                     "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "createPhysicalNetwork"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "device name",
                     "name": "brocadedevicename",
+                    "description": "device name",
                     "type": "string"
                 },
                 {
-                    "description": "device id of the Brocade Vcs",
-                    "name": "vcsdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the principal switch Ip address",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
                     "name": "provider",
+                    "description": "name of the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the physical Network to which this Brocade VCS belongs to",
+                    "name": "vcsdeviceid",
+                    "description": "device id of the Brocade Vcs",
+                    "type": "string"
+                },
+                {
                     "name": "physicalnetworkid",
+                    "description": "the physical Network to which this Brocade VCS belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the principal switch Ip address",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "link an existing cloudstack domain to group or OU in ldap",
-            "isasync": false,
-            "name": "linkDomainToLdap",
+            "name": "updatePortForwardingRule",
+            "description": "Updates a port forwarding rule. Only the private port and the virtual machine can be updated.",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "domain admin username in LDAP ",
+                    "name": "privateport",
+                    "description": "the private start port of the port forwarding rule",
+                    "type": "integer",
                     "length": 255,
-                    "name": "admin",
+                    "required": false
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "The id of the domain which has to be linked to LDAP.",
+                    "name": "id",
+                    "description": "the ID of the port forwarding rule",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
                     "required": true,
-                    "type": "uuid"
+                    "since": "4.4",
+                    "related": "updatePortForwardingRule"
                 },
                 {
-                    "description": "type of the ldap name. GROUP or OU",
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "type",
-                    "required": true,
-                    "type": "string"
+                    "required": false,
+                    "since": "4.4"
                 },
                 {
-                    "description": "Type of the account to auto import. Specify 0 for user and 2 for domain admin",
+                    "name": "privateendport",
+                    "description": "the private end port of the port forwarding rule",
+                    "type": "integer",
                     "length": 255,
-                    "name": "accounttype",
-                    "required": true,
-                    "type": "short"
+                    "required": false
                 },
                 {
-                    "description": "name of the group or OU in LDAP",
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine for the port forwarding rule",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "vmguestip",
+                    "description": "VM guest nic Secondary ip address for the port forwarding rule",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.5"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "id of the Domain which is linked to LDAP",
-                    "name": "domainid",
-                    "type": "long"
-                },
-                {
-                    "description": "type of the name in LDAP which is linke to the domain",
-                    "name": "type",
+                    "name": "ipaddress",
+                    "description": "the public ip address for the port forwarding rule",
                     "type": "string"
                 },
                 {
-                    "description": "Domain Admin accountId that is created",
-                    "name": "accountid",
+                    "name": "privateport",
+                    "description": "the starting port of port forwarding rule's private port range",
                     "type": "string"
                 },
                 {
-                    "description": "Type of the account to auto import",
+                    "name": "publicendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "publicport",
+                    "description": "the starting port of port forwarding rule's public port range",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinename",
+                    "description": "the VM name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "privateendport",
+                    "description": "the ending port of port forwarding rule's private port range",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the VM ID for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the id of the guest network the port forwarding rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "vmguestip",
+                    "description": "the vm ip address for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinedisplayname",
+                    "description": "the VM display name for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the port forwarding rule",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is firewall for display to the regular user",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "linkDomainToLdap",
+            "description": "link an existing cloudstack domain to group or OU in ldap",
+            "since": "4.6.0",
+            "isasync": false,
+            "related": "linkAccountToLdap",
+            "params": [
+                {
                     "name": "accounttype",
+                    "description": "Type of the account to auto import. Specify 0 for user and 2 for domain admin",
+                    "type": "short",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "type",
+                    "description": "type of the ldap name. GROUP or OU",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "name",
+                    "description": "name of the group or OU in LDAP",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "The id of the domain which has to be linked to LDAP.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "admin",
+                    "description": "domain admin username in LDAP ",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ldapdomain",
+                    "description": "name of the group or OU in LDAP",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "name of the group or OU in LDAP which is linked to the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "Type of the account to auto import",
                     "type": "short"
                 },
                 {
+                    "name": "accountid",
+                    "description": "Domain Admin accountId that is created",
+                    "type": "string"
+                },
+                {
+                    "name": "ldapdomain",
                     "description": "name of the group or OU in LDAP which is linked to the domain",
-                    "name": "name",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "id of the Domain which is linked to LDAP",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the name in LDAP which is linke to the domain",
                     "type": "string"
                 }
-            ],
-            "since": "4.6.0"
+            ]
         },
         {
+            "name": "associateIpAddress",
             "description": "Acquires and associates a public IP to an account.",
             "isasync": true,
-            "name": "associateIpAddress",
+            "related": "updateIpAddress,listPublicIpAddresses,associateIpAddress",
             "params": [
                 {
-                    "description": "an optional field, whether to the display the IP to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the VPC you want the IP address to be associated with",
-                    "length": 255,
                     "name": "vpcid",
-                    "related": "restartVPC,listVPCs,createVPC,updateVPC,listVPCs,createVPC",
+                    "description": "the VPC you want the IP address to be associated with",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createVPC,restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
                 },
                 {
-                    "description": "the account to associate with this IP address",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "the account to associate with this IP address",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Deploy VM for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "should be set to true if public IP is required to be transferable across zones, if not specified defaults to false",
-                    "length": 255,
-                    "name": "isportable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the domain to associate with this IP address",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "region ID from where portable IP is to be associated.",
-                    "length": 255,
                     "name": "regionid",
-                    "related": "addRegion,listRegions",
+                    "description": "region ID from where portable IP is to be associated.",
+                    "type": "integer",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "listRegions,addRegion"
                 },
                 {
-                    "description": "The network this IP address should be associated to.",
+                    "name": "projectid",
+                    "description": "Deploy VM for the project",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
                     "required": false,
-                    "type": "uuid"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
                 },
                 {
-                    "description": "the ID of the availability zone you want to acquire an public IP address from",
+                    "name": "domainid",
+                    "description": "the ID of the domain to associate with this IP address",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
+                    "description": "the ID of the availability zone you want to acquire an public IP address from",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "networkid",
+                    "description": "The network this IP address should be associated to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "isportable",
+                    "description": "should be set to true if public IP is required to be transferable across zones, if not specified defaults to false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the IP to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses",
             "response": [
                 {
-                    "description": "the project name of the address",
-                    "name": "project",
+                    "name": "vlanid",
+                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
                     "type": "string"
                 },
                 {
-                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "is public ip for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the Network where ip belongs to",
                     "name": "networkid",
+                    "description": "the ID of the Network where ip belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the domain the public IP address is associated with",
-                    "name": "domain",
+                    "name": "virtualmachinedisplayname",
+                    "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the Network associated with the IP address",
-                    "name": "associatednetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "is public IP portable across the zones",
-                    "name": "isportable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the zone the public IP address belongs to",
                     "name": "zonename",
+                    "description": "the name of the zone the public IP address belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "public IP address id",
-                    "name": "id",
+                    "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the virtual network for the IP address",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the zone the public IP address belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain ID the public IP address is associated with",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account the public IP address is associated with",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this ip is for static nat, false otherwise",
-                    "name": "isstaticnat",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of resource tags associated with ip address",
                     "name": "tags",
+                    "description": "the list of resource tags associated with ip address",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "id of the resource",
                             "name": "resourceid",
+                            "description": "id of the resource",
                             "type": "string"
                         },
                         {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
                             "name": "key",
+                            "description": "tag key name",
                             "type": "string"
                         },
                         {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
                             "name": "value",
+                            "description": "tag value",
                             "type": "string"
                         },
                         {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
+                            "name": "resourcetype",
+                            "description": "resource type",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the domain associated with the tag",
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
                             "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the account associated with the tag",
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
                             "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
+                    "name": "virtualmachinename",
+                    "description": "virtual machine name the ip address is assigned to (not null only for static nat Ip)",
                     "type": "string"
                 },
                 {
-                    "description": "virutal machine (dnat) ip address (not null only for static nat Ip)",
-                    "name": "vmipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the IP address is a source nat address, false otherwise",
-                    "name": "issourcenat",
+                    "name": "fordisplay",
+                    "description": "is public ip for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
+                    "name": "isstaticnat",
+                    "description": "true if this ip is for static nat, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "account",
+                    "description": "the account the public IP address is associated with",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the Network associated with the IP address",
-                    "name": "associatednetworkname",
+                    "name": "domain",
+                    "description": "the domain the public IP address is associated with",
                     "type": "string"
                 },
                 {
-                    "description": "VPC the ip belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
-                    "name": "vlanid",
-                    "type": "string"
-                },
-                {
-                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
-                    "name": "purpose",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinename",
-                    "type": "string"
-                },
-                {
-                    "description": "the VLAN associated with the IP address",
-                    "name": "vlanname",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine id the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "date the public IP address was acquired",
                     "name": "allocated",
+                    "description": "date the public IP address was acquired",
                     "type": "date"
                 },
                 {
-                    "description": "virutal machine display name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinedisplayname",
+                    "name": "issourcenat",
+                    "description": "true if the IP address is a source nat address, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "virtual machine id the ip address is assigned to (not null only for static nat Ip)",
                     "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "associatednetworkid",
+                    "description": "the ID of the Network associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone the public IP address belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "isportable",
+                    "description": "is public IP portable across the zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vmipaddress",
+                    "description": "virtual machine (dnat) ip address (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "public IP address id",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID the public IP address is associated with",
+                    "type": "string"
+                },
+                {
+                    "name": "vlanname",
+                    "description": "the VLAN associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "associatednetworkname",
+                    "description": "the name of the Network associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "purpose",
+                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the ip belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the IP address",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "deleteVpnConnection",
             "description": "Delete site to site vpn connection",
             "isasync": true,
-            "name": "deleteVpnConnection",
             "params": [
                 {
+                    "name": "id",
                     "description": "id of vpn connection",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "createVpnConnection,listVpnConnections",
                     "required": true,
-                    "type": "uuid"
+                    "related": "createVpnConnection,listVpnConnections"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": " delete a F5 load balancer device",
-            "isasync": true,
-            "name": "deleteF5LoadBalancer",
-            "params": [
-                {
-                    "description": "netscaler load balancer device ID",
-                    "length": 255,
-                    "name": "lbdeviceid",
-                    "related": "addF5LoadBalancer",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
                     "description": "any text associated with the success or failure",
-                    "name": "displaytext",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Creates a ACL rule in the given network (the network has to belong to VPC)",
-            "isasync": true,
-            "name": "createNetworkACL",
-            "params": [
-                {
-                    "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the CIDR list to allow traffic from/to",
-                    "length": 255,
-                    "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "error code for this ICMP message",
-                    "length": 255,
-                    "name": "icmpcode",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "scl entry action, allow or deny",
-                    "length": 255,
-                    "name": "action",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The network of the VM the ACL will be created for",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ending port of ACL",
-                    "length": 255,
-                    "name": "endport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "The network of the VM the ACL will be created for",
-                    "length": 255,
-                    "name": "aclid",
-                    "related": "createNetworkACLList",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the starting port of ACL",
-                    "length": 255,
-                    "name": "startport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "The network of the VM the ACL will be created for",
-                    "length": 255,
-                    "name": "number",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "type of the ICMP message being sent",
-                    "length": 255,
-                    "name": "icmptype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the traffic type for the ACL,can be ingress or egress, defaulted to ingress if not specified",
-                    "length": 255,
-                    "name": "traffictype",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "updateNetworkACLItem",
-            "response": [
-                {
-                    "description": "Number of the ACL Item",
-                    "name": "number",
-                    "type": "integer"
-                },
-                {
-                    "description": "the starting port of ACL's port range",
-                    "name": "startport",
-                    "type": "string"
-                },
-                {
-                    "description": "the traffic type for the ACL",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ACL this item belongs to",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of ACL's port range",
-                    "name": "endport",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Action of ACL Item. Allow/Deny",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "the protocol of the ACL",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the network ACLs",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the ID of the ACL Item",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                }
-            ]
-        },
-        {
+            "name": "resetSSHKeyForVirtualMachine",
             "description": "Resets the SSH Key for virtual machine. The virtual machine must be in a \"Stopped\" state. [async]",
             "isasync": true,
-            "name": "resetSSHKeyForVirtualMachine",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional project for the ssh key",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional account for the ssh key. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "name of the ssh key pair used to login to the virtual machine",
-                    "length": 255,
-                    "name": "keypair",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,resetSSHKeyForVirtualMachine,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "keypair",
+                    "description": "name of the ssh key pair used to login to the virtual machine",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account for the ssh key. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "an optional project for the ssh key",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
                 }
             ],
-            "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
+                    "name": "name",
+                    "description": "the name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
+                    "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
                     "type": "string"
                 },
                 {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
                     "type": "long"
                 },
                 {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
                     "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "virtual machine IDs associated with this affinity group",
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
                             "type": "list"
                         },
                         {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
+                            "name": "account",
+                            "description": "the account owning the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
                             "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the vgpu type used by the virtual machine",
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
                     "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
                 },
                 {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "the amount of the vm's CPU currently used",
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
                     "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
+                    "name": "keypair",
+                    "description": "ssh key-pair",
                     "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
                 },
                 {
-                    "description": "list of security groups associated with the virtual machine",
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the ID of the security group",
-                            "name": "id",
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
                             "type": "string"
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
                             "name": "domainid",
+                            "description": "the domain ID of the security group",
                             "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
                 }
             ]
         },
         {
+            "name": "listVpnCustomerGateways",
             "description": "Lists site to site vpn customer gateways",
             "isasync": false,
-            "name": "listVpnCustomerGateways",
+            "related": "createVpnCustomerGateway",
             "params": [
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "id of the customer gateway",
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "id",
-                    "related": "createVpnCustomerGateway,listVpnCustomerGateways",
+                    "description": "id of the customer gateway",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listVpnCustomerGateways,createVpnCustomerGateway"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createVpnCustomerGateway",
             "response": [
                 {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
+                    "name": "ikelifetime",
+                    "description": "Lifetime of IKE SA of customer gateway",
+                    "type": "long"
                 },
                 {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
+                    "name": "forceencap",
+                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
+                    "type": "boolean"
                 },
                 {
-                    "description": "IKE policy of customer gateway",
-                    "name": "ikepolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "IPsec policy of customer gateway",
-                    "name": "esppolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "IPsec preshared-key of customer gateway",
-                    "name": "ipsecpsk",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
                     "name": "removed",
+                    "description": "the date and time the host was removed",
                     "type": "date"
                 },
                 {
-                    "description": "public ip address id of the customer gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "guest cidr list of the customer gateway",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "if DPD is enabled for customer gateway",
-                    "name": "dpd",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Lifetime of IKE SA of customer gateway",
-                    "name": "ikelifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
-                    "name": "forceencap",
-                    "type": "boolean"
-                },
-                {
-                    "description": "name of the customer gateway",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "guest ip of the customer gateway",
                     "name": "ipaddress",
+                    "description": "guest ip of the customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "Lifetime of ESP SA of customer gateway",
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "ikepolicy",
+                    "description": "IKE policy of customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "esppolicy",
+                    "description": "IPsec policy of customer gateway",
+                    "type": "string"
+                },
+                {
                     "name": "esplifetime",
+                    "description": "Lifetime of ESP SA of customer gateway",
                     "type": "long"
+                },
+                {
+                    "name": "ipsecpsk",
+                    "description": "IPsec preshared-key of customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "dpd",
+                    "description": "if DPD is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteManagementNetworkIpRange",
+            "description": "Deletes a management network IP range. This action is only allowed when no IPs in this range are allocated.",
+            "since": "4.11.0.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "vlan",
+                    "description": "The vlan id the ip range sits on",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "startip",
+                    "description": "The starting IP address.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "endip",
+                    "description": "The ending IP address.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "podid",
+                    "description": "UUID of POD, where the IP range belongs to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createNetworkACL",
+            "description": "Creates a ACL rule in the given network (the network has to belong to VPC)",
+            "isasync": true,
+            "related": "updateNetworkACLItem",
+            "params": [
+                {
+                    "name": "endport",
+                    "description": "the ending port of ACL",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "aclid",
+                    "description": "The network of the VM the ACL will be created for",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createNetworkACLList"
+                },
+                {
+                    "name": "networkid",
+                    "description": "The network of the VM the ACL will be created for",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the ICMP message being sent",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the ACL,can be ingress or egress, defaulted to ingress if not specified",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of ACL",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this ICMP message",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "number",
+                    "description": "The network of the VM the ACL will be created for",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the CIDR list to allow traffic from/to",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "action",
+                    "description": "scl entry action, allow or deny",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the ACL",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of ACL's port range",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the network ACLs",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of ACL's port range",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "the ID of the ACL this item belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "Action of ACL Item. Allow/Deny",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the ACL Item",
+                    "type": "string"
+                },
+                {
+                    "name": "number",
+                    "description": "Number of the ACL Item",
+                    "type": "integer"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the ACL",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "createGlobalLoadBalancerRule",
             "description": "Creates a global load balancer rule",
             "isasync": true,
-            "name": "createGlobalLoadBalancerRule",
+            "related": "updateGlobalLoadBalancerRule,listGlobalLoadBalancerRules",
             "params": [
                 {
-                    "description": "the domain ID associated with the load balancer",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of the load balancer rule",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the global load balancer. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "region where the global load balancer is going to be created.",
-                    "length": 255,
                     "name": "regionid",
-                    "related": "addRegion,listRegions",
+                    "description": "region where the global load balancer is going to be created.",
+                    "type": "integer",
+                    "length": 255,
                     "required": true,
-                    "type": "integer"
+                    "related": "listRegions,addRegion"
                 },
                 {
-                    "description": "domain name for the GSLB service.",
-                    "length": 255,
-                    "name": "gslbdomainname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "session sticky method (sourceip) if not specified defaults to sourceip",
-                    "length": 255,
                     "name": "gslbstickysessionmethodname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the load balancer rule",
-                    "length": 4096,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "load balancer algorithm (roundrobin, leastconn, proximity) that method is used to distribute traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'",
+                    "description": "session sticky method (sourceip) if not specified defaults to sourceip",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the global load balancer. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "name of the load balancer rule",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the load balancer",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "gslbdomainname",
+                    "description": "domain name for the GSLB service.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
                     "name": "gslblbmethod",
-                    "required": false,
-                    "type": "string"
+                    "description": "load balancer algorithm (roundrobin, leastconn, proximity) that method is used to distribute traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "GSLB service type (tcp, udp, http)",
-                    "length": 255,
                     "name": "gslbservicetype",
-                    "required": true,
-                    "type": "string"
+                    "description": "GSLB service type (tcp, udp, http)",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer rule",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
                 }
             ],
-            "related": "updateGlobalLoadBalancerRule,listGlobalLoadBalancerRules",
             "response": [
                 {
-                    "description": "name of the global load balancer rule",
                     "name": "name",
+                    "description": "name of the global load balancer rule",
                     "type": "string"
                 },
                 {
-                    "description": "GSLB service type",
-                    "name": "gslbservicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "session persistence method used for the global load balancer",
-                    "name": "gslbstickysessionmethodname",
-                    "type": "string"
-                },
-                {
-                    "description": "Region Id in which global load balancer is created",
-                    "name": "regionid",
-                    "type": "integer"
-                },
-                {
-                    "description": "the domain of the load balancer rule",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the load balancer rule",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "global load balancer rule ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the load balancer",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the load balancer",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the global load balancer rule",
                     "name": "description",
+                    "description": "the description of the global load balancer rule",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID of the load balancer rule",
-                    "name": "domainid",
+                    "name": "projectid",
+                    "description": "the project id of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "Load balancing method used for the global load balancer",
-                    "name": "gslblbmethod",
-                    "type": "string"
-                },
-                {
-                    "description": "DNS domain name given for the global load balancer",
                     "name": "gslbdomainname",
+                    "description": "DNS domain name given for the global load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "List of load balancer rules that are part of GSLB rule",
+                    "name": "account",
+                    "description": "the account of the load balancer rule",
+                    "type": "string"
+                },
+                {
                     "name": "loadbalancerrule",
+                    "description": "List of load balancer rules that are part of GSLB rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the id of the guest network the lb rule belongs to",
-                            "name": "networkid",
+                            "name": "publicip",
+                            "description": "the public ip address",
                             "type": "string"
                         },
                         {
-                            "description": "the list of resource tags associated with load balancer",
+                            "name": "networkid",
+                            "description": "the id of the guest network the lb rule belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "privateport",
+                            "description": "the private port",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cidrlist",
+                            "description": "the cidr list to forward traffic from",
+                            "type": "string"
+                        },
+                        {
                             "name": "tags",
+                            "description": "the list of resource tags associated with load balancer",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "id of the resource",
                                     "name": "resourceid",
+                                    "description": "id of the resource",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
                                     "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "the protocol of the loadbalanacer rule",
-                            "name": "protocol",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr list to forward traffic from",
-                            "name": "cidrlist",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the load balancer",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the load balancer",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the zone the rule belongs to",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the load balancer rule ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                            "name": "algorithm",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain of the load balancer rule",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the private port",
-                            "name": "privateport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account of the load balancer rule",
                             "name": "account",
+                            "description": "the account of the load balancer rule",
                             "type": "string"
                         },
                         {
-                            "description": "the public port",
-                            "name": "publicport",
+                            "name": "projectid",
+                            "description": "the project id of the load balancer",
                             "type": "string"
                         },
                         {
-                            "description": "the domain ID of the load balancer rule",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the public ip address",
-                            "name": "publicip",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the public ip address id",
-                            "name": "publicipid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the rule",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "is rule for display to the regular user",
                             "name": "fordisplay",
+                            "description": "is rule for display to the regular user",
                             "type": "boolean"
                         },
                         {
-                            "description": "the description of the load balancer",
-                            "name": "description",
+                            "name": "domain",
+                            "description": "the domain of the load balancer rule",
                             "type": "string"
                         },
                         {
-                            "description": "the project id of the load balancer",
-                            "name": "projectid",
+                            "name": "zonename",
+                            "description": "the name of the zone the load balancer rule belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "protocol",
+                            "description": "the protocol of the loadbalanacer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the id of the zone the rule belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "publicport",
+                            "description": "the public port",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the load balancer rule ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "publicipid",
+                            "description": "the public ip address id",
+                            "type": "string"
+                        },
+                        {
+                            "name": "algorithm",
+                            "description": "the load balancer algorithm (source, roundrobin, leastconn)",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
+                },
+                {
+                    "name": "regionid",
+                    "description": "Region Id in which global load balancer is created",
+                    "type": "integer"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "global load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbstickysessionmethodname",
+                    "description": "session persistence method used for the global load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbservicetype",
+                    "description": "GSLB service type",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "gslblbmethod",
+                    "description": "Load balancing method used for the global load balancer",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteNetscalerLoadBalancer",
             "description": " delete a netscaler load balancer device",
             "isasync": true,
-            "name": "deleteNetscalerLoadBalancer",
             "params": [
                 {
-                    "description": "netscaler load balancer device ID",
-                    "length": 255,
                     "name": "lbdeviceid",
-                    "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers",
+                    "description": "netscaler load balancer device ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "deployNetscalerVpx,registerNetscalerControlCenter,addNetscalerLoadBalancer,listNetscalerLoadBalancers"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "listGlobalLoadBalancerRules",
             "description": "Lists load balancer rules.",
             "isasync": false,
-            "name": "listGlobalLoadBalancerRules",
+            "related": "updateGlobalLoadBalancerRule",
             "params": [
                 {
-                    "description": "region ID",
-                    "length": 255,
-                    "name": "regionid",
-                    "related": "addRegion,listRegions",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the global load balancer rule",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateGlobalLoadBalancerRule,listGlobalLoadBalancerRules",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
+                    "required": false
                 },
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "name": "id",
+                    "description": "the ID of the global load balancer rule",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "isrecursive",
                     "required": false,
-                    "type": "boolean"
+                    "related": "updateGlobalLoadBalancerRule,listGlobalLoadBalancerRules"
                 },
                 {
+                    "name": "pagesize",
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "listall",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "regionid",
+                    "description": "region ID",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false,
+                    "related": "listRegions,addRegion"
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
                 }
             ],
-            "related": "updateGlobalLoadBalancerRule",
             "response": [
                 {
-                    "description": "the description of the global load balancer rule",
-                    "name": "description",
+                    "name": "gslblbmethod",
+                    "description": "Load balancing method used for the global load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "List of load balancer rules that are part of GSLB rule",
+                    "name": "projectid",
+                    "description": "the project id of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "global load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbstickysessionmethodname",
+                    "description": "session persistence method used for the global load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "regionid",
+                    "description": "Region Id in which global load balancer is created",
+                    "type": "integer"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the global load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbservicetype",
+                    "description": "GSLB service type",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the load balancer",
+                    "type": "string"
+                },
+                {
                     "name": "loadbalancerrule",
+                    "description": "List of load balancer rules that are part of GSLB rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the domain ID of the load balancer rule",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the private port",
-                            "name": "privateport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the rule",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the public port",
-                            "name": "publicport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the zone the rule belongs to",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the load balancer rule ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                            "name": "algorithm",
-                            "type": "string"
-                        },
-                        {
-                            "description": "is rule for display to the regular user",
                             "name": "fordisplay",
+                            "description": "is rule for display to the regular user",
                             "type": "boolean"
                         },
                         {
-                            "description": "the public ip address id",
-                            "name": "publicipid",
+                            "name": "description",
+                            "description": "the description of the load balancer",
                             "type": "string"
                         },
                         {
-                            "description": "the list of resource tags associated with load balancer",
+                            "name": "privateport",
+                            "description": "the private port",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the id of the guest network the lb rule belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the load balancer rule ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "publicipid",
+                            "description": "the public ip address id",
+                            "type": "string"
+                        },
+                        {
                             "name": "tags",
+                            "description": "the list of resource tags associated with load balancer",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
                                     "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "the public ip address",
-                            "name": "publicip",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the load balancer",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the protocol of the loadbalanacer rule",
-                            "name": "protocol",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the load balancer",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the guest network the lb rule belongs to",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr list to forward traffic from",
-                            "name": "cidrlist",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the load balancer",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain of the load balancer rule",
                             "name": "domain",
+                            "description": "the domain of the load balancer rule",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the load balancer",
-                            "name": "name",
+                            "name": "algorithm",
+                            "description": "the load balancer algorithm (source, roundrobin, leastconn)",
                             "type": "string"
                         },
                         {
-                            "description": "the account of the load balancer rule",
+                            "name": "cidrlist",
+                            "description": "the cidr list to forward traffic from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "publicport",
+                            "description": "the public port",
+                            "type": "string"
+                        },
+                        {
+                            "name": "protocol",
+                            "description": "the protocol of the loadbalanacer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
                             "name": "account",
+                            "description": "the account of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the id of the zone the rule belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "publicip",
+                            "description": "the public ip address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the name of the zone the load balancer rule belongs to",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "Region Id in which global load balancer is created",
-                    "name": "regionid",
-                    "type": "integer"
-                },
-                {
-                    "description": "GSLB service type",
-                    "name": "gslbservicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the load balancer rule",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the load balancer rule",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "session persistence method used for the global load balancer",
-                    "name": "gslbstickysessionmethodname",
-                    "type": "string"
-                },
-                {
-                    "description": "DNS domain name given for the global load balancer",
                     "name": "gslbdomainname",
+                    "description": "DNS domain name given for the global load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "Load balancing method used for the global load balancer",
-                    "name": "gslblbmethod",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the global load balancer rule",
                     "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "global load balancer rule ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the load balancer",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the load balancer rule",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the load balancer",
-                    "name": "project",
+                    "description": "name of the global load balancer rule",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteDiskOffering",
             "description": "Updates a disk offering.",
             "isasync": false,
-            "name": "deleteDiskOffering",
             "params": [
                 {
-                    "description": "ID of the disk offering",
-                    "length": 255,
                     "name": "id",
-                    "related": "createDiskOffering,listDiskOfferings",
+                    "description": "ID of the disk offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listDiskOfferings,createDiskOffering"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "List resource tag(s)",
-            "isasync": false,
-            "name": "listTags",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list by resource type",
-                    "length": 255,
-                    "name": "resourcetype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list by key",
-                    "length": 255,
-                    "name": "key",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list by resource id",
-                    "length": 255,
-                    "name": "resourceid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list by customer name",
-                    "length": 255,
-                    "name": "customer",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list by value",
-                    "length": 255,
-                    "name": "value",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the domain associated with the tag",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "resource type",
-                    "name": "resourcetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id the tag belongs to",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "customer associated with the tag",
-                    "name": "customer",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the tag",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the resource",
-                    "name": "resourceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name where tag belongs to",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "tag key name",
-                    "name": "key",
-                    "type": "string"
-                },
-                {
-                    "description": "tag value",
-                    "name": "value",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the tag",
-                    "name": "domainid",
-                    "type": "string"
-                }
-            ],
-            "since": "4.0.0"
-        },
-        {
+            "name": "releaseDedicatedCluster",
             "description": "Release the dedication for cluster",
             "isasync": true,
-            "name": "releaseDedicatedCluster",
             "params": [
                 {
-                    "description": "the ID of the Cluster",
-                    "length": 255,
                     "name": "clusterid",
-                    "related": "addCluster,updateCluster",
+                    "description": "the ID of the Cluster",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addCluster,updateCluster"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listTags",
+            "description": "List resource tag(s)",
+            "since": "4.0.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "key",
+                    "description": "list by key",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "customer",
+                    "description": "list by customer name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "list by resource type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "resourceid",
+                    "description": "list by resource id",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "value",
+                    "description": "list by value",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "resourceid",
+                    "description": "id of the resource",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "resource type",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the tag",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the tag",
+                    "type": "string"
+                },
+                {
+                    "name": "key",
+                    "description": "tag key name",
+                    "type": "string"
+                },
+                {
+                    "name": "value",
+                    "description": "tag value",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name where tag belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id the tag belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the tag",
+                    "type": "string"
+                },
+                {
+                    "name": "customer",
+                    "description": "customer associated with the tag",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createVirtualRouterElement",
             "description": "Create a virtual router element.",
             "isasync": true,
-            "name": "createVirtualRouterElement",
+            "related": "listVirtualRouterElements,configureVirtualRouterElement",
             "params": [
                 {
-                    "description": "The provider type. Supported types are VirtualRouter (default) and VPCVirtualRouter",
-                    "length": 255,
                     "name": "providertype",
-                    "related": "listNetworkServiceProviders",
+                    "description": "The provider type. Supported types are VirtualRouter (default) and VPCVirtualRouter",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listNetworkServiceProviders"
                 },
                 {
-                    "description": "the network service provider ID of the virtual router element",
-                    "length": 255,
                     "name": "nspid",
-                    "related": "listNetworkServiceProviders",
+                    "description": "the network service provider ID of the virtual router element",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listNetworkServiceProviders"
                 }
             ],
-            "related": "listVirtualRouterElements,configureVirtualRouterElement",
             "response": [
                 {
-                    "description": "the id of the router",
+                    "name": "domainid",
+                    "description": "the domain ID associated with the provider",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the id of the router",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the provider",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the provider",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "Enabled/Disabled the service provider",
                     "name": "enabled",
+                    "description": "Enabled/Disabled the service provider",
                     "type": "boolean"
                 },
                 {
-                    "description": "the domain ID associated with the provider",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network service provider id of the provider",
                     "name": "nspid",
+                    "description": "the physical network service provider id of the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
                     "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the address",
+                    "name": "account",
+                    "description": "the account associated with the provider",
+                    "type": "string"
+                },
+                {
                     "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the provider",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createVPC",
             "description": "Creates a VPC",
             "isasync": true,
-            "name": "createVPC",
+            "related": "restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs",
             "params": [
                 {
-                    "description": "VPC network domain. All networks inside the VPC will belong to this domain",
-                    "length": 255,
-                    "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR",
-                    "length": 255,
-                    "name": "cidr",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the VPC",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availability zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the domain ID associated with the VPC. If used with the account parameter returns the VPC associated with the account for the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "create VPC for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the account associated with the VPC. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the VPC",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the vpc to the end user or not",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpc to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "If set to false, the VPC won't start (VPC VR will not get allocated) until its first network gets implemented. True by default.",
-                    "length": 255,
-                    "name": "start",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the VPC offering",
-                    "length": 255,
                     "name": "vpcofferingid",
-                    "related": "updateVPCOffering",
+                    "description": "the ID of the VPC offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateVPCOffering"
+                },
+                {
+                    "name": "cidr",
+                    "description": "the cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "start",
+                    "description": "If set to false, the VPC won't start (VPC VR will not get allocated) until its first network gets implemented. True by default.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "VPC network domain. All networks inside the VPC will belong to this domain",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the VPC. If used with the account parameter returns the VPC associated with the account for the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the VPC. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availability zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "projectid",
+                    "description": "create VPC for the project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
                 }
             ],
-            "related": "restartVPC,listVPCs,updateVPC,listVPCs,createVPC",
             "response": [
                 {
-                    "description": "true if VPC is region level",
-                    "name": "regionlevelvpc",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the id of the VPC",
                     "name": "id",
+                    "description": "the id of the VPC",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the VPC",
-                    "name": "projectid",
+                    "name": "name",
+                    "description": "the name of the VPC",
                     "type": "string"
                 },
                 {
-                    "description": "if this VPC has redundant router",
-                    "name": "redundantvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "vpc offering id the VPC is created from",
-                    "name": "vpcofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "is vpc for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of resource tags associated with the project",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "state of the VPC. Can be Inactive/Enabled",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr the VPC",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain of the VPC",
                     "name": "networkdomain",
+                    "description": "the network domain of the VPC",
                     "type": "string"
                 },
                 {
-                    "description": "an alternate display text of the VPC.",
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the project",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the VPC owner",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the VPC",
+                    "type": "string"
+                },
+                {
                     "name": "displaytext",
+                    "description": "an alternate display text of the VPC.",
                     "type": "string"
                 },
                 {
-                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
-                    "name": "distributedvpcrouter",
+                    "name": "network",
+                    "description": "the list of networks belongign to the VPC",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "zoneid",
+                            "description": "zone id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the ipaddress",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "reservediprange",
+                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                            "type": "string"
+                        },
+                        {
+                            "name": "restartrequired",
+                            "description": "true network requires restart",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain id of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "related",
+                            "description": "related to what other network configuration",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the network's gateway",
+                            "type": "string"
+                        },
+                        {
+                            "name": "dns2",
+                            "description": "the second DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaytext",
+                            "description": "the displaytext of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "subdomainaccess",
+                            "description": "true if users from subdomains can access the domain level network",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkofferingavailability",
+                            "description": "availability of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcastdomaintype",
+                            "description": "Broadcast domain type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "acltype",
+                            "description": "acl type - access type to the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with network",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "vlan",
+                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "physicalnetworkid",
+                            "description": "the physical network id",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingid",
+                            "description": "network offering id the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the name of the zone the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "issystem",
+                            "description": "true if network is system, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if network is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the network's netmask",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingconservemode",
+                            "description": "true if network offering is ip conserve mode enabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonesnetworkspans",
+                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                            "type": "set"
+                        },
+                        {
+                            "name": "externalid",
+                            "description": "The external id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "specifyipranges",
+                            "description": "true if network supports specifying ip ranges, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "canusefordeploy",
+                            "description": "list networks available for vm deployment",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "dns1",
+                            "description": "the first DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingdisplaytext",
+                            "description": "display text of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "state of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ispersistent",
+                            "description": "list networks that are persistent",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkdomain",
+                            "description": "the network domain",
+                            "type": "string"
+                        },
+                        {
+                            "name": "service",
+                            "description": "the list of services",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the service name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "provider",
+                                    "description": "the service provider name",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "physicalnetworkid",
+                                            "description": "the physical network this belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "canenableindividualservice",
+                                            "description": "true if individual services can be enabled/disabled",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "destinationphysicalnetworkid",
+                                            "description": "the destination physical network",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "name",
+                                            "description": "the provider name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "id",
+                                            "description": "uuid of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "state",
+                                            "description": "state of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "servicelist",
+                                            "description": "services for this provider",
+                                            "type": "list"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "capability",
+                                    "description": "the list of capabilities",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "value",
+                                            "description": "the capability value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "name",
+                                            "description": "the capability name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "canchooseservicecapability",
+                                            "description": "can this service capability value can be choosable while creatine network offerings",
+                                            "type": "boolean"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "networkofferingname",
+                            "description": "name of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vpcid",
+                            "description": "VPC the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkcidr",
+                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaynetwork",
+                            "description": "an optional field, whether to the display the network to the end user or not.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the owner of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "strechedl2subnet",
+                            "description": "true if network can span multiple zones",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "aclid",
+                            "description": "ACL Id associated with the VPC network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "redundantrouter",
+                            "description": "If the network has redundant routers enabled",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "state",
+                    "description": "state of the VPC. Can be Inactive/Enabled",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpc for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the domain id of the VPC owner",
-                    "name": "domainid",
-                    "type": "string"
+                    "name": "regionlevelvpc",
+                    "description": "true if VPC is region level",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the list of networks belongign to the VPC",
-                    "name": "network",
-                    "response": [
-                        {
-                            "description": "the displaytext of the network",
-                            "name": "displaytext",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network supports specifying ip ranges, false otherwise",
-                            "name": "specifyipranges",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                            "name": "cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's gateway",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "related to what other network configuration",
-                            "name": "related",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the network owner",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network offering is ip conserve mode enabled",
-                            "name": "networkofferingconservemode",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "true if network is system, false otherwise",
-                            "name": "issystem",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the second DNS for the network",
-                            "name": "dns2",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's netmask",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "zone id of the network",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the owner of the network",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the zone the network belongs to",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the physical network id",
-                            "name": "physicalnetworkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                            "name": "reservediprange",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of services",
-                            "name": "service",
-                            "response": [
-                                {
-                                    "description": "the service name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of capabilities",
-                                    "name": "capability",
-                                    "response": [
-                                        {
-                                            "description": "the capability value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "can this service capability value can be choosable while creatine network offerings",
-                                            "name": "canchooseservicecapability",
-                                            "type": "boolean"
-                                        },
-                                        {
-                                            "description": "the capability name",
-                                            "name": "name",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the service provider name",
-                                    "name": "provider",
-                                    "response": [
-                                        {
-                                            "description": "state of the network provider",
-                                            "name": "state",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "services for this provider",
-                                            "name": "servicelist",
-                                            "type": "list"
-                                        },
-                                        {
-                                            "description": "true if individual services can be enabled/disabled",
-                                            "name": "canenableindividualservice",
-                                            "type": "boolean"
-                                        },
-                                        {
-                                            "description": "the physical network this belongs to",
-                                            "name": "physicalnetworkid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "uuid of the network provider",
-                                            "name": "id",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the destination physical network",
-                                            "name": "destinationphysicalnetworkid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the provider name",
-                                            "name": "name",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "list"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the first DNS for the network",
-                            "name": "dns1",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true network requires restart",
-                            "name": "restartrequired",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "name of the network offering the network is created from",
-                            "name": "networkofferingname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                            "name": "vlan",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with network",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the project id of the ipaddress",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network domain",
-                            "name": "networkdomain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "list networks that are persistent",
-                            "name": "ispersistent",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the network",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the address",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "an optional field, whether to the display the network to the end user or not.",
-                            "name": "displaynetwork",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if users from subdomains can access the domain level network",
-                            "name": "subdomainaccess",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "true if network is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                            "name": "networkcidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Broadcast domain type of the network",
-                            "name": "broadcastdomaintype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "availability of the network offering the network is created from",
-                            "name": "networkofferingavailability",
-                            "type": "string"
-                        },
-                        {
-                            "description": "VPC the network belongs to",
-                            "name": "vpcid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the network",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain id of the network owner",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "acl type - access type to the network",
-                            "name": "acltype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "list networks available for vm deployment",
-                            "name": "canusefordeploy",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the name of the network",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "state of the network",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "ACL Id associated with the VPC network",
-                            "name": "aclid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "display text of the network offering the network is created from",
-                            "name": "networkofferingdisplaytext",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network can span multiple zones",
-                            "name": "strechedl2subnet",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the traffic type of the network",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "network offering id the network is created from",
-                            "name": "networkofferingid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                            "name": "zonesnetworkspans",
-                            "type": "set"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "zone id of the vpc",
                     "name": "zoneid",
+                    "description": "zone id of the vpc",
                     "type": "string"
                 },
                 {
-                    "description": "the owner of the VPC",
+                    "name": "zonename",
+                    "description": "the name of the zone the VPC belongs to",
+                    "type": "string"
+                },
+                {
                     "name": "account",
+                    "description": "the owner of the VPC",
                     "type": "string"
                 },
                 {
-                    "description": "the list of supported services",
                     "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the list of capabilities",
                             "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "type": "boolean"
                                 },
                                 {
-                                    "description": "the capability name",
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
                                     "name": "name",
+                                    "description": "the provider name",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the capability value",
-                                    "name": "value",
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the domain name of the owner",
+                    "name": "project",
+                    "description": "the project name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true VPC requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "redundantvpcrouter",
+                    "description": "if this VPC has redundant router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vpcofferingid",
+                    "description": "vpc offering id the VPC is created from",
+                    "type": "string"
+                },
+                {
                     "name": "domain",
+                    "description": "the domain name of the owner",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the zone the VPC belongs to",
-                    "name": "zonename",
-                    "type": "string"
+                    "name": "distributedvpcrouter",
+                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the date this VPC was created",
                     "name": "created",
+                    "description": "the date this VPC was created",
                     "type": "date"
                 },
                 {
-                    "description": "the project name of the VPC",
-                    "name": "project",
+                    "name": "cidr",
+                    "description": "the cidr the VPC",
                     "type": "string"
-                },
-                {
-                    "description": "the name of the VPC",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true VPC requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "deleteAutoScalePolicy",
             "description": "Deletes a autoscale policy.",
             "isasync": true,
-            "name": "deleteAutoScalePolicy",
             "params": [
                 {
+                    "name": "id",
                     "description": "the ID of the autoscale policy",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateAutoScalePolicy,listAutoScalePolicies",
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateAutoScalePolicy,listAutoScalePolicies"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes a role",
-            "isasync": false,
             "name": "deleteRole",
+            "description": "Deletes a role",
+            "since": "4.9.0",
+            "isasync": false,
             "params": [
                 {
+                    "name": "id",
                     "description": "ID of the role",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "listRoles,createRole",
                     "required": true,
-                    "type": "uuid"
+                    "related": "createRole,listRoles,updateRole"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": " delete a Cisco Nexus VSM device",
-            "isasync": true,
-            "name": "deleteCiscoNexusVSM",
-            "params": [
-                {
-                    "description": "Id of the Cisco Nexus 1000v VSM device to be deleted",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listCiscoNexusVSMs,disableCiscoNexusVSM",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
                     "description": "any text associated with the success or failure",
-                    "name": "displaytext",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listInternalLoadBalancerVMs",
             "description": "List internal LB VMs.",
             "isasync": false,
-            "name": "listInternalLoadBalancerVMs",
+            "related": "listRouters,destroyRouter",
             "params": [
                 {
-                    "description": "the state of the Internal LB VM",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "if true is passed for this parameter, list only VPC Internal LB VMs",
-                    "length": 255,
-                    "name": "forvpc",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the Internal LB VM",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list by network id",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,listSrxFirewallNetworks,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the host ID of the Internal LB VM",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the Zone ID of the Internal LB VM",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List Internal LB VMs by VPC",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,listVPCs,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Pod ID of the Internal LB VM",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomainChildren,listDomains"
                 },
                 {
-                    "description": "the name of the Internal LB VM",
+                    "name": "forvpc",
+                    "description": "if true is passed for this parameter, list only VPC Internal LB VMs",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "podid",
+                    "description": "the Pod ID of the Internal LB VM",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the Internal LB VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID of the Internal LB VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "list by network id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the Internal LB VM",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the Internal LB VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
                     "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Internal LB VM",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "List Internal LB VMs by VPC",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
                 }
             ],
-            "related": "destroyRouter,listRouters",
             "response": [
                 {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding link local network",
                     "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the router",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding guest network",
-                    "name": "guestnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
-                    "name": "scriptsversion",
-                    "type": "string"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the router was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the host ID for the router",
                     "name": "hostid",
+                    "description": "the host ID for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name for the router",
-                    "name": "zonename",
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the second IPv6 DNS for the router",
-                    "name": "ip6dns2",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
+                    "name": "version",
+                    "description": "the version of template",
                     "type": "string"
                 },
                 {
-                    "description": "true if the router template requires upgrader",
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
                     "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
                     "type": "boolean"
                 },
                 {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
                     "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the router",
                     "name": "state",
+                    "description": "the state of the router",
                     "type": "state"
                 },
                 {
-                    "description": "the version of template",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
                     "name": "id",
+                    "description": "the id of the router",
                     "type": "string"
                 },
                 {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with the router",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
                     "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
                             "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the corresponding network",
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "networkid",
+                            "description": "the ID of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
                             "name": "type",
+                            "description": "the type of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the Secondary ipv4 addr of nic",
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
                             "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
                             "type": "list"
                         },
                         {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
                             "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the IPv6 address of network",
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
                             "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
                     "type": "string"
                 },
                 {
-                    "description": "the link local netmask for the router",
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
                     "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the state of redundant virtual router",
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the router was created",
+                    "type": "date"
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
                     "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
+                    "name": "hostname",
+                    "description": "the hostname for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the router",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists Cisco VNMC controllers",
-            "isasync": false,
-            "name": "listCiscoVnmcResources",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Cisco VNMC resource ID",
-                    "length": 255,
-                    "name": "resourceid",
-                    "related": "listCiscoVnmcResources",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                }
-            ]
-        },
-        {
+            "name": "removeResourceDetail",
             "description": "Removes detail for the Resource.",
             "isasync": true,
-            "name": "removeResourceDetail",
             "params": [
                 {
-                    "description": "Delete details matching key/value pairs",
-                    "length": 255,
-                    "name": "key",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Delete details for resource id",
-                    "length": 255,
-                    "name": "resourceid",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Delete detail by resource type",
-                    "length": 255,
                     "name": "resourcetype",
-                    "required": true,
-                    "type": "string"
+                    "description": "Delete detail by resource type",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "key",
+                    "description": "Delete details matching key/value pairs",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resourceid",
+                    "description": "Delete details for resource id",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listOsTypes",
             "description": "Lists all supported OS types for this cloud.",
             "isasync": false,
-            "name": "listOsTypes",
-            "params": [
-                {
-                    "description": "list by Os Category id",
-                    "length": 255,
-                    "name": "oscategoryid",
-                    "related": "listOsCategories",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list by Os type Id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addGuestOs,listOsTypes",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list os by description",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "since": "3.0.1",
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
             "related": "addGuestOs",
-            "response": [
+            "params": [
                 {
-                    "description": "the ID of the OS type",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS category",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "is the guest OS user defined",
-                    "name": "isuserdefined",
-                    "type": "string"
-                },
-                {
-                    "description": "the name/description of the OS type",
                     "name": "description",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a particular egress rule from this security group",
-            "isasync": true,
-            "name": "revokeSecurityGroupEgress",
-            "params": [
-                {
-                    "description": "The ID of the egress rule",
+                    "description": "list os by description",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "authorizeSecurityGroupIngress",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Removes a Guest OS from listing.",
-            "isasync": true,
-            "name": "removeGuestOs",
-            "params": [
-                {
-                    "description": "ID of the guest OS",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addGuestOs",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.4.0"
-        },
-        {
-            "description": "lists network that are using SRX firewall device",
-            "isasync": false,
-            "name": "listSrxFirewallNetworks",
-            "params": [
-                {
-                    "description": "netscaler load balancer device ID",
-                    "length": 255,
-                    "name": "lbdeviceid",
-                    "related": "configureSrxFirewall",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
                     "required": false,
-                    "type": "integer"
+                    "since": "3.0.1"
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "oscategoryid",
+                    "description": "list by Os Category id",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listOsCategories"
+                },
+                {
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
+                    "name": "page",
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list by Os type Id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "listOsTypes,addGuestOs"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createNetwork,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
             "response": [
                 {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
-                    "type": "string"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the network belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                    "name": "zonesnetworkspans",
-                    "type": "set"
-                },
-                {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
-                    "name": "subdomainaccess",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the network",
                     "name": "id",
+                    "description": "the ID of the OS type",
                     "type": "string"
                 },
                 {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
+                    "name": "description",
+                    "description": "the name/description of the OS type",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
+                    "name": "oscategoryid",
+                    "description": "the ID of the OS category",
+                    "type": "string"
+                },
+                {
+                    "name": "isuserdefined",
+                    "description": "is the guest OS user defined",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "revokeSecurityGroupEgress",
+            "description": "Deletes a particular egress rule from this security group",
+            "since": "3.0.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "The ID of the egress rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "authorizeSecurityGroupIngress"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "removeGuestOs",
+            "description": "Removes a Guest OS from listing.",
+            "since": "4.4.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "ID of the guest OS",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addGuestOs"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "detachIso",
             "description": "Detaches any ISO file (if any) currently attached to a virtual machine.",
             "isasync": true,
-            "name": "detachIso",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
                     "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,detachIso,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,detachIso,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
                     "type": "string"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
                     "type": "integer"
                 },
                 {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
                     "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
                     "name": "created",
+                    "description": "the date when this virtual machine was created",
                     "type": "date"
                 },
                 {
-                    "description": "the project name of the vm",
-                    "name": "project",
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "type": "string"
                 },
                 {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        }
+                    ]
                 },
                 {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
                     "type": "long"
                 },
                 {
 
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
                     "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
                     "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
+                            "name": "id",
+                            "description": "the ID of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "virtual machine IDs associated with this affinity group",
                             "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
                             "type": "list"
                         },
                         {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
                             "name": "description",
+                            "description": "the description of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the affinity group",
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
                             "name": "type",
+                            "description": "the type of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        }
+                    ]
                 }
             ]
         },
         {
+            "name": "deletePaloAltoFirewall",
             "description": " delete a Palo Alto firewall device",
             "isasync": true,
-            "name": "deletePaloAltoFirewall",
             "params": [
                 {
-                    "description": "Palo Alto firewall device ID",
-                    "length": 255,
                     "name": "fwdeviceid",
-                    "related": "configurePaloAltoFirewall,listPaloAltoFirewalls,addPaloAltoFirewall",
+                    "description": "Palo Alto firewall device ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addPaloAltoFirewall,configurePaloAltoFirewall,listPaloAltoFirewalls"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deletePod",
             "description": "Deletes a Pod.",
             "isasync": false,
-            "name": "deletePod",
             "params": [
                 {
-                    "description": "the ID of the Pod",
-                    "length": 255,
                     "name": "id",
-                    "related": "updatePod",
+                    "description": "the ID of the Pod",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createManagementNetworkIpRange,updatePod"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listDeploymentPlanners",
             "description": "Lists all DeploymentPlanners available.",
             "isasync": false,
-            "name": "listDeploymentPlanners",
+            "related": "",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Deployment Planner name",
                     "name": "name",
+                    "description": "Deployment Planner name",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createRole",
+            "description": "Creates a role",
+            "since": "4.9.0",
+            "isasync": false,
+            "related": "listRoles,updateRole",
+            "params": [
+                {
+                    "name": "type",
+                    "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "name",
+                    "description": "creates a role with this unique name",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "The description of the role",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "type",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the role",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteCluster",
             "description": "Deletes a cluster.",
             "isasync": false,
-            "name": "deleteCluster",
             "params": [
                 {
-                    "description": "the cluster ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "addCluster,updateCluster",
+                    "description": "the cluster ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addCluster,updateCluster"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "prepareHostForMaintenance",
             "description": "Prepares a host for maintenance.",
             "isasync": true,
-            "name": "prepareHostForMaintenance",
+            "related": "cancelHostMaintenance,addBaremetalHost,reconnectHost,addHost",
             "params": [
                 {
-                    "description": "the host ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost,cancelHostMaintenance",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "cancelHostMaintenance,addBaremetalHost,prepareHostForMaintenance,reconnectHost,addHost"
                 }
             ],
-            "related": "addBaremetalHost,reconnectHost,addHost,cancelHostMaintenance",
             "response": [
                 {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the amount of the host's memory currently used",
-                    "name": "memoryused",
-                    "type": "long"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
-                    "type": "string"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
                     "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the state of the host",
-                    "name": "state",
-                    "type": "status"
-                },
-                {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
                     "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
-                    "type": "date"
-                },
-                {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "the host out-of-band management information",
                     "name": "outofbandmanagement",
+                    "description": "the host out-of-band management information",
                     "type": "outofbandmanagementresponse"
                 },
                 {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
                     "type": "long"
                 },
                 {
-                    "description": "GPU cards present in the host",
+                    "name": "clusterid",
+                    "description": "the cluster ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hostha",
+                    "description": "the host HA information information",
+                    "type": "hostharesponse"
+                },
+                {
+                    "name": "averageload",
+                    "description": "the cpu average load on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
+                },
+                {
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor",
+                    "type": "string"
+                },
+                {
                     "name": "gpugroup",
+                    "description": "GPU cards present in the host",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "GPU cards present in the host",
                             "name": "gpugroupname",
+                            "description": "GPU cards present in the host",
                             "type": "string"
                         },
                         {
-                            "description": "the list of enabled vGPUs",
                             "name": "vgpu",
+                            "description": "the list of enabled vGPUs",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
-                                    "name": "maxcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum Y resolution per display",
-                                    "name": "maxresolutiony",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Video RAM for this vGPU type",
-                                    "name": "videoram",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
                                     "name": "remainingcapacity",
+                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
-                                    "name": "maxvgpuperpgpu",
+                                    "name": "videoram",
+                                    "description": "Video RAM for this vGPU type",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
+                                    "name": "maxresolutiony",
+                                    "description": "Maximum Y resolution per display",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Model Name of vGPU",
                                     "name": "vgputype",
+                                    "description": "Model Name of vGPU",
                                     "type": "string"
+                                },
+                                {
+                                    "name": "maxheads",
+                                    "description": "Maximum displays per user",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxvgpuperpgpu",
+                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxcapacity",
+                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutionx",
+                                    "description": "Maximum X resolution per display",
+                                    "type": "long"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
+                    "name": "podname",
+                    "description": "the Pod name of the host",
+                    "type": "string"
                 },
                 {
-                    "description": "the host type",
+                    "name": "hypervisor",
+                    "description": "the host hypervisor",
+                    "type": "hypervisortype"
+                },
+                {
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "username",
+                    "description": "the admin that annotated this host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "oscategoryname",
+                    "description": "the OS category name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Host details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
+                    "type": "long"
+                },
+                {
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "managementserverid",
+                    "description": "the management server ID of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "events",
+                    "description": "events available for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "the resource state of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "cpusockets",
+                    "description": "the number of CPU sockets on the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "capabilities",
+                    "description": "capabilities of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the host version",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the host",
+                    "type": "status"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
+                    "type": "long"
+                },
+                {
+                    "name": "lastannotated",
+                    "description": "the last time this host was annotated",
+                    "type": "date"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
+                    "type": "long"
+                },
+                {
                     "name": "type",
+                    "description": "the host type",
                     "type": "type"
                 },
                 {
-                    "description": "the name of the host",
-                    "name": "name",
+                    "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "events available for the host",
-                    "name": "events",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category ID of the host",
                     "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
-                    "type": "long"
-                }
-            ]
-        },
-        {
-            "description": "Creates a role",
-            "isasync": false,
-            "name": "createRole",
-            "params": [
-                {
-                    "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User",
-                    "length": 255,
-                    "name": "type",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "creates a role with this unique name",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The description of the role",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "listRoles",
-            "response": [
-                {
-                    "description": "the ID of the role",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the role",
-                    "name": "description",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": "Removes specified region",
-            "isasync": false,
-            "name": "removeRegion",
-            "params": [
-                {
-                    "description": "ID of the region to delete",
-                    "length": 255,
-                    "name": "id",
-                    "required": true,
-                    "type": "integer"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
                     "type": "boolean"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the last annotation set on this host by an admin",
+                    "type": "string"
+                },
+                {
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "getVolumeiScsiName",
             "description": "Get Volume's iSCSI Name",
             "isasync": false,
-            "name": "getVolumeiScsiName",
+            "related": "",
             "params": [
                 {
-                    "description": "CloudStack Volume UUID",
-                    "length": 255,
                     "name": "volumeid",
-                    "required": true,
-                    "type": "string"
+                    "description": "CloudStack Volume UUID",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Volume iSCSI Name",
                     "name": "volumeiScsiName",
+                    "description": "Volume iSCSI Name",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Upload a data disk to the cloudstack cloud.",
+            "name": "removeRegion",
+            "description": "Removes specified region",
             "isasync": false,
-            "name": "getUploadParamsForVolume",
             "params": [
                 {
-                    "description": "the MD5 checksum value of this volume/template",
+                    "name": "id",
+                    "description": "ID of the region to delete",
+                    "type": "integer",
                     "length": 255,
-                    "name": "checksum",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the format for the volume/template. Possible values include QCOW2, OVA, and VHD.",
-                    "length": 255,
-                    "name": "format",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering. This must be a custom sized offering since during upload of volume/template size is unknown.",
-                    "length": 255,
-                    "name": "diskofferingid",
-                    "related": "createDiskOffering,listDiskOfferings",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the volume/template",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone the volume/template is to be hosted on",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Upload volume/template for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Image store uuid",
-                    "length": 255,
-                    "name": "imagestoreuuid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional accountName. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 }
             ],
-            "related": "getUploadParamsForTemplate",
             "response": [
                 {
-                    "description": "signature to be sent in the POST request.",
-                    "name": "signature",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the timestamp after which the signature expires",
-                    "name": "expires",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "getUploadParamsForVolume",
+            "description": "Upload a data disk to the cloudstack cloud.",
+            "since": "4.6.0",
+            "isasync": false,
+            "related": "getUploadParamsForTemplate",
+            "params": [
+                {
+                    "name": "account",
+                    "description": "an optional accountName. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the template/volume ID",
+                    "name": "name",
+                    "description": "the name of the volume/template",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "format",
+                    "description": "the format for the volume/template. Possible values include QCOW2, OVA, and VHD.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone the volume/template is to be hosted on",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "imagestoreuuid",
+                    "description": "Image store uuid",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering. This must be a custom sized offering since during upload of volume/template size is unknown.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDiskOfferings,createDiskOffering"
+                },
+                {
+                    "name": "checksum",
+                    "description": "the checksum value of this volume/template The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{<algorithm>}\", not including the double quotes. In this <algorithm> is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "Upload volume/template for the project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
                     "name": "id",
+                    "description": "the template/volume ID",
                     "type": "uuid"
                 },
                 {
-                    "description": "POST url to upload the file to",
+                    "name": "expires",
+                    "description": "the timestamp after which the signature expires",
+                    "type": "string"
+                },
+                {
                     "name": "postURL",
+                    "description": "POST url to upload the file to",
                     "type": "url"
                 },
                 {
-                    "description": "encrypted data to be sent in the POST request.",
                     "name": "metadata",
+                    "description": "encrypted data to be sent in the POST request.",
+                    "type": "string"
+                },
+                {
+                    "name": "signature",
+                    "description": "signature to be sent in the POST request.",
                     "type": "string"
                 }
-            ],
-            "since": "4.6.0"
+            ]
         },
         {
+            "name": "updateAutoScaleVmProfile",
             "description": "Updates an existing autoscale vm profile.",
             "isasync": true,
-            "name": "updateAutoScaleVmProfile",
+            "related": "listAutoScaleVmProfiles,createAutoScaleVmProfile",
             "params": [
                 {
-                    "description": "an optional field, whether to the display the profile to the end user or not",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the profile to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "the ID of the autoscale vm profile",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateAutoScaleVmProfile,listAutoScaleVmProfiles,createAutoScaleVmProfile",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the user used to launch and destroy the VMs",
-                    "length": 255,
-                    "name": "autoscaleuserid",
-                    "related": "disableUser,lockUser,enableUser,getUser,listUsers,updateUser,createUser",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the template of the auto deployed virtual machine",
-                    "length": 255,
-                    "name": "templateid",
-                    "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,registerIso,registerIso,listIsos,createTemplate,copyIso",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
-                    "length": 255,
                     "name": "destroyvmgraceperiod",
-                    "required": false,
-                    "type": "integer"
+                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161",
+                    "name": "templateid",
+                    "description": "the template of the auto deployed virtual machine",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "counterparam",
                     "required": false,
-                    "type": "map"
+                    "related": "registerIso,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the autoscale vm profile",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listAutoScaleVmProfiles,createAutoScaleVmProfile,updateAutoScaleVmProfile"
+                },
+                {
+                    "name": "counterparam",
+                    "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "autoscaleuserid",
+                    "description": "the ID of the user used to launch and destroy the VMs",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateUser,listUsers,enableUser,lockUser,getUser,createUser,disableUser"
                 }
             ],
-            "related": "listAutoScaleVmProfiles,createAutoScaleVmProfile",
             "response": [
                 {
-                    "description": "the autoscale vm profile ID",
-                    "name": "id",
+                    "name": "zoneid",
+                    "description": "the availability zone to be used while deploying a virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "is profile for display to the regular user",
+                    "name": "templateid",
+                    "description": "the template to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is profile for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the availability zone to be used while deploying a virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
-                    "name": "destroyvmgraceperiod",
-                    "type": "integer"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the vm profile",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id vm profile",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine",
-                    "name": "otherdeployparams",
-                    "type": "string"
-                },
-                {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the user used to launch and destroy the VMs",
                     "name": "autoscaleuserid",
+                    "description": "the ID of the user used to launch and destroy the VMs",
                     "type": "string"
                 },
                 {
-                    "description": "the service offering to be used while deploying a virtual machine",
+                    "name": "domain",
+                    "description": "the domain name of the vm profile",
+                    "type": "string"
+                },
+                {
                     "name": "serviceofferingid",
+                    "description": "the service offering to be used while deploying a virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the template to be used while deploying a virtual machine",
-                    "name": "templateid",
+                    "name": "projectid",
+                    "description": "the project id vm profile",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the vm profile",
+
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale vm profile ID",
+                    "type": "string"
+                },
+                {
                     "name": "project",
+                    "description": "the project name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the vm profile",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-
+                    "name": "otherdeployparams",
+                    "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "destroyvmgraceperiod",
+                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
+                    "type": "integer"
                 }
             ]
         },
         {
+            "name": "updateAutoScaleVmGroup",
             "description": "Updates an existing autoscale vm group.",
             "isasync": true,
-            "name": "updateAutoScaleVmGroup",
+            "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups",
             "params": [
                 {
-                    "description": "list of scaleup autoscale policies",
-                    "length": 255,
-                    "name": "scaleuppolicyids",
-                    "related": "updateAutoScalePolicy,listAutoScalePolicies",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "an optional field, whether to the display the group to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
-                    "length": 255,
-                    "name": "minmembers",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "list of scaledown autoscale policies",
-                    "length": 255,
-                    "name": "scaledownpolicyids",
-                    "related": "updateAutoScalePolicy,listAutoScalePolicies",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
-                    "length": 255,
                     "name": "maxmembers",
+                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "scaleuppolicyids",
+                    "description": "list of scaleup autoscale policies",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "updateAutoScalePolicy,listAutoScalePolicies"
                 },
                 {
-                    "description": "the ID of the autoscale group",
+                    "name": "scaledownpolicyids",
+                    "description": "list of scaledown autoscale policies",
+                    "type": "list",
                     "length": 255,
-                    "name": "id",
-                    "related": "enableAutoScaleVmGroup,updateAutoScaleVmGroup,listAutoScaleVmGroups",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false,
+                    "related": "updateAutoScalePolicy,listAutoScalePolicies"
                 },
                 {
-                    "description": "the frequency at which the conditions have to be evaluated",
-                    "length": 255,
                     "name": "interval",
+                    "description": "the frequency at which the conditions have to be evaluated",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the group to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "since": "4.4"
+                },
+                {
+                    "name": "minmembers",
+                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the autoscale group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateAutoScaleVmGroup,enableAutoScaleVmGroup,listAutoScaleVmGroups"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups",
             "response": [
                 {
-                    "description": "is group for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is group for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the load balancer rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the current state of the AutoScale Vm Group",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "list of scaleup autoscale policies",
-                    "name": "scaleuppolicies",
-                    "type": "list"
-                },
-                {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm profile",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the vm profile",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale profile that contains information about the vms in the vm group.",
                     "name": "vmprofileid",
+                    "description": "the autoscale profile that contains information about the vms in the vm group.",
                     "type": "string"
                 },
                 {
-                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
-                    "name": "minmembers",
-                    "type": "int"
-                },
-                {
-                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
                     "name": "maxmembers",
+                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
                     "type": "int"
                 },
                 {
-                    "description": "the project id vm profile",
-                    "name": "projectid",
+                    "name": "account",
+                    "description": "the account owning the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "the autoscale vm group ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the frequency at which the conditions have to be evaluated",
-                    "name": "interval",
-                    "type": "int"
-                },
-                {
-                    "description": "list of scaledown autoscale policies",
                     "name": "scaledownpolicies",
+                    "description": "list of scaledown autoscale policies",
                     "type": "list"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "minmembers",
+                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
+                    "type": "int"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale vm group ID",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the current state of the AutoScale Vm Group",
+                    "type": "string"
+                },
+                {
+                    "name": "interval",
+                    "description": "the frequency at which the conditions have to be evaluated",
+                    "type": "int"
+                },
+                {
+                    "name": "scaleuppolicies",
+                    "description": "list of scaleup autoscale policies",
+                    "type": "list"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the vm profile",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "enableAutoScaleVmGroup",
             "description": "Enables an AutoScale Vm Group",
             "isasync": true,
-            "name": "enableAutoScaleVmGroup",
+            "related": "listAutoScaleVmGroups",
             "params": [
                 {
-                    "description": "the ID of the autoscale group",
-                    "length": 255,
                     "name": "id",
-                    "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups",
+                    "description": "the ID of the autoscale group",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups"
                 }
             ],
-            "related": "listAutoScaleVmGroups",
             "response": [
                 {
-                    "description": "the frequency at which the conditions have to be evaluated",
-                    "name": "interval",
-                    "type": "int"
-                },
-                {
-                    "description": "the project id vm profile",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
-                    "name": "maxmembers",
-                    "type": "int"
-                },
-                {
-                    "description": "the autoscale vm group ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the vm profile",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the current state of the AutoScale Vm Group",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm profile",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "list of scaledown autoscale policies",
                     "name": "scaledownpolicies",
+                    "description": "list of scaledown autoscale policies",
                     "type": "list"
                 },
                 {
-                    "description": "the autoscale profile that contains information about the vms in the vm group.",
-                    "name": "vmprofileid",
+                    "name": "project",
+                    "description": "the project name of the vm profile",
                     "type": "string"
                 },
                 {
-                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
-                    "name": "minmembers",
+                    "name": "interval",
+                    "description": "the frequency at which the conditions have to be evaluated",
                     "type": "int"
                 },
                 {
-                    "description": "is group for display to the regular user",
+                    "name": "minmembers",
+                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
+                    "type": "int"
+                },
+                {
+                    "name": "maxmembers",
+                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
+                    "type": "int"
+                },
+                {
+                    "name": "scaleuppolicies",
+                    "description": "list of scaleup autoscale policies",
+                    "type": "list"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the vm profile",
+                    "type": "string"
+                },
+                {
                     "name": "fordisplay",
+                    "description": "is group for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "list of scaleup autoscale policies",
-                    "name": "scaleuppolicies",
-                    "type": "list"
+                    "name": "vmprofileid",
+                    "description": "the autoscale profile that contains information about the vms in the vm group.",
+                    "type": "string"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale vm group ID",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the current state of the AutoScale Vm Group",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteSnapshot",
             "description": "Deletes a snapshot of a disk volume.",
             "isasync": true,
-            "name": "deleteSnapshot",
             "params": [
                 {
-                    "description": "The ID of the snapshot",
-                    "length": 255,
                     "name": "id",
-                    "related": "revertSnapshot",
+                    "description": "The ID of the snapshot",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "revertSnapshot"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listVirtualMachines",
             "description": "List the virtual machines owned by the account.",
             "isasync": false,
-            "name": "listVirtualMachines",
+            "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID",
-                    "length": 255,
-                    "name": "groupid",
-                    "related": "createInstanceGroup",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list by network id",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list vms by template",
-                    "length": 255,
-                    "name": "templateid",
-                    "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,registerIso,registerIso,listIsos,createTemplate,copyIso",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list by the service offering",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "updateServiceOffering,listServiceOfferings",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "uuid"
-                },
-                {
-                    "description": "the IDs of the virtual machines, mutually exclusive with id",
-                    "length": 255,
-                    "name": "ids",
-                    "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "list"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of the virtual machine (a substring match is made against the parameter value, data for all matching VMs will be returned)",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list vms by iso",
-                    "length": 255,
-                    "name": "isoid",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list vms by affinity group",
-                    "length": 255,
-                    "name": "affinitygroupid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "displayvm",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list vms by vpc",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,listVPCs,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the availability zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the storage ID where vm's volumes belong to",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the pod ID",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,listVirtualMachines,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list vms by ssh keypair name",
-                    "length": 255,
-                    "name": "keypair",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list by network type; true if need to list vms using Virtual Network, false otherwise",
-                    "length": 255,
-                    "name": "forvirtualnetwork",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the user ID that created the VM and is under the account that owns the VM",
-                    "length": 255,
-                    "name": "userid",
-                    "related": "disableUser,lockUser,enableUser,getUser,listUsers,updateUser,createUser",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the target hypervisor for the template",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the storage ID where vm's volumes belong to",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the pod ID",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "list by the service offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "since": "4.4",
+                    "related": "updateServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "templateid",
+                    "description": "list vms by template",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "registerIso,listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the availability zone ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,reconnectHost,addHost"
+                },
+                {
+                    "name": "podid",
+                    "description": "the pod ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "storageid",
+                    "description": "the storage ID where vm's volumes belong to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "list by network type; true if need to list vms using Virtual Network, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "list vms by affinity group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createInstanceGroup"
+                },
+                {
+                    "name": "details",
+                    "description": "comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isoid",
+                    "description": "list vms by iso",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "userid",
+                    "description": "the user ID that created the VM and is under the account that owns the VM",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateUser,listUsers,enableUser,lockUser,getUser,createUser,disableUser"
+                },
+                {
+                    "name": "keypair",
+                    "description": "list vms by ssh keypair name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ids",
+                    "description": "the IDs of the virtual machines, mutually exclusive with id",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4",
+                    "related": "removeNicFromVirtualMachine,revertToVMSnapshot,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,listVirtualMachines,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "list by network id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the virtual machine (a substring match is made against the parameter value, data for all matching VMs will be returned)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the target hypervisor for the template",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "list vms by vpc",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
                 }
             ],
-            "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "ssh key-pair",
                     "name": "keypair",
+                    "description": "ssh key-pair",
                     "type": "string"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
                     "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
+                            "name": "description",
+                            "description": "the description of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the project ID of the affinity group",
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
                             "name": "projectid",
+                            "description": "the project ID of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
                             "name": "domainid",
+                            "description": "the domain ID of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "virtual machine IDs associated with this affinity group",
                             "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
                             "type": "list"
                         },
                         {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
                             "name": "type",
+                            "description": "the type of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the affinity group",
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
                             "name": "name",
+                            "description": "the name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
                             "name": "project",
+                            "description": "the project name of the affinity group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
                     "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
                     "type": "string"
                 },
                 {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
 
                 },
                 {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
                     "name": "details",
+                    "description": "Vm details in key/value pairs.",
                     "type": "map"
                 },
                 {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
+                    "name": "project",
+                    "description": "the project name of the vm",
                     "type": "string"
                 },
                 {
+                    "name": "publicipid",
                     "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
                     "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
+                            "name": "domain",
+                            "description": "the domain name of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
+                            "name": "id",
+                            "description": "the ID of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
+                            "name": "name",
+                            "description": "the name of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
                             "name": "networkid",
+                            "description": "the ID of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
                             "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
                             "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the group name of the virtual machine",
                     "name": "group",
+                    "description": "the group name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the vm",
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "projectid",
+                    "description": "the project id of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates the information about Guest OS to Hypervisor specific name mapping",
-            "isasync": true,
             "name": "updateGuestOsMapping",
+            "description": "Updates the information about Guest OS to Hypervisor specific name mapping",
+            "since": "4.4.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "UUID of the Guest OS to hypervisor name Mapping",
+                    "name": "osnameforhypervisor",
+                    "description": "Hypervisor specific name for this Guest OS",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateGuestOsMapping",
-                    "required": true,
-                    "type": "uuid"
+                    "required": true
                 },
                 {
-                    "description": "Hypervisor specific name for this Guest OS",
+                    "name": "id",
+                    "description": "UUID of the Guest OS to hypervisor name Mapping",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "osnameforhypervisor",
                     "required": true,
-                    "type": "string"
+                    "related": "updateGuestOsMapping"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "standard display name for the Guest OS",
-                    "name": "osdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Guest OS mapping",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "version of the hypervisor for mapping",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "is the mapping user defined",
-                    "name": "isuserdefined",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Guest OS type",
                     "name": "ostypeid",
+                    "description": "the ID of the Guest OS type",
                     "type": "string"
                 },
                 {
-                    "description": "hypervisor specific name for the Guest OS",
                     "name": "osnameforhypervisor",
+                    "description": "hypervisor specific name for the Guest OS",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor",
+                    "type": "string"
+                },
+                {
+                    "name": "isuserdefined",
+                    "description": "is the mapping user defined",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the Guest OS mapping",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "version of the hypervisor for mapping",
+                    "type": "string"
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "standard display name for the Guest OS",
                     "type": "string"
                 }
-            ],
-            "since": "4.4.0"
+            ]
         },
         {
+            "name": "listDiskOfferings",
             "description": "Lists all available disk offerings.",
             "isasync": false,
-            "name": "listDiskOfferings",
+            "related": "createDiskOffering",
             "params": [
                 {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "name of the disk offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "ID of the disk offering",
-                    "length": 255,
                     "name": "id",
-                    "related": "createDiskOffering,listDiskOfferings",
+                    "description": "ID of the disk offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDiskOfferings,createDiskOffering"
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
                     "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "listDomainChildren,listDomains"
                 }
             ],
-            "related": "createDiskOffering",
             "response": [
                 {
-                    "description": "the size of the disk offering in GB",
-                    "name": "disksize",
+                    "name": "id",
+                    "description": "unique ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
+                    "type": "integer"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk offering",
                     "type": "long"
                 },
                 {
-                    "description": "io requests read rate of the disk offering",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
+                    "name": "domain",
+                    "description": "the domain name this disk offering belongs to. Ignore this information as it is not currently applicable.",
+                    "type": "string"
                 },
                 {
-                    "description": "true if disk offering uses custom iops, false otherwise",
+                    "name": "cacheMode",
+                    "description": "the cache mode to use for this disk offering. none, writeback or writethrough",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the disk offering",
+                    "type": "string"
+                },
+                {
                     "name": "iscustomizediops",
+                    "description": "true if disk offering uses custom iops, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the storage type for this disk offering",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name this disk offering belongs to. Ignore this information as it is not currently applicable.",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the min iops of the disk offering",
-                    "name": "miniops",
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk offering",
                     "type": "long"
                 },
                 {
-                    "description": "bytes read rate of the disk offering",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable.",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "unique ID of the disk offering",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this disk offering was created",
                     "name": "created",
+                    "description": "the date this disk offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "whether to display the offering to the end user or not.",
-                    "name": "displayoffering",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the max iops of the disk offering",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "bytes write rate of the disk offering",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "io requests write rate of the disk offering",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
-                    "name": "hypervisorsnapshotreserve",
-                    "type": "integer"
-                },
-                {
-                    "description": "the cache mode to use for this disk offering. none, writeback or writethrough",
-                    "name": "cacheMode",
-                    "type": "string"
-                },
-                {
-                    "description": "true if disk offering uses custom size, false otherwise",
-                    "name": "iscustomized",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the tags for the disk offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the disk offering.",
                     "name": "displaytext",
+                    "description": "an alternate display text of the disk offering.",
                     "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable.",
+                    "type": "string"
+                },
+                {
+                    "name": "displayoffering",
+                    "description": "whether to display the offering to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "the storage type for this disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "the max iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "disksize",
+                    "description": "the size of the disk offering in GB",
+                    "type": "long"
+                },
+                {
+                    "name": "iscustomized",
+                    "description": "true if disk offering uses custom size, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "the min iops of the disk offering",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "updateHostPassword",
             "description": "Update password of a host/pool on management server.",
             "isasync": false,
-            "name": "updateHostPassword",
             "params": [
                 {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "if the password should also be updated on the hosts",
-                    "length": 255,
-                    "name": "update_passwd_on_host",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the username for the host/cluster",
-                    "length": 255,
                     "name": "username",
-                    "required": true,
-                    "type": "string"
+                    "description": "the username for the host/cluster",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the cluster ID",
-                    "length": 255,
                     "name": "clusterid",
-                    "related": "addCluster,updateCluster",
+                    "description": "the cluster ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "addCluster,updateCluster"
                 },
                 {
-                    "description": "the new password for the host/cluster",
+                    "name": "hostid",
+                    "description": "the host ID",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,reconnectHost,addHost"
+                },
+                {
                     "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "description": "the new password for the host/cluster",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "update_passwd_on_host",
+                    "description": "if the password should also be updated on the hosts",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "adds a range of portable public IP's to a region",
-            "isasync": true,
             "name": "createPortableIpRange",
+            "description": "adds a range of portable public IP's to a region",
+            "since": "4.2.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the netmask of the portable IP range",
-                    "length": 255,
-                    "name": "netmask",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the portable IP range",
-                    "length": 255,
-                    "name": "gateway",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the beginning IP address in the portable IP range",
-                    "length": 255,
-                    "name": "startip",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ending IP address in the portable IP range",
-                    "length": 255,
                     "name": "endip",
-                    "required": true,
-                    "type": "string"
+                    "description": "the ending IP address in the portable IP range",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "VLAN id, if not specified defaulted to untagged",
-                    "length": 255,
                     "name": "vlan",
-                    "required": false,
-                    "type": "string"
+                    "description": "VLAN id, if not specified defaulted to untagged",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Id of the Region",
+                    "name": "startip",
+                    "description": "the beginning IP address in the portable IP range",
+                    "type": "string",
                     "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the portable IP range",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the portable IP range",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
                     "name": "regionid",
-                    "related": "addRegion,listRegions",
+                    "description": "Id of the Region",
+                    "type": "integer",
+                    "length": 255,
                     "required": true,
-                    "type": "integer"
+                    "related": "listRegions,addRegion"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the start ip of the portable IP range",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "Region Id in which portable ip range is provisioned",
-                    "name": "regionid",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID or VID of the VLAN.",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ip of the portable IP range",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "portable IP range ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule",
                     "name": "portableipaddress",
+                    "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "public IP address",
-                            "name": "ipaddress",
+                            "name": "zoneid",
+                            "description": "the ID of the zone the public IP address belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Region Id in which global load balancer is created",
                             "name": "regionid",
+                            "description": "Region Id in which global load balancer is created",
                             "type": "integer"
                         },
                         {
-                            "description": "the ID of the zone the public IP address belongs to",
-                            "name": "zoneid",
+                            "name": "ipaddress",
+                            "description": "public IP address",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the Network where ip belongs to",
-                            "name": "networkid",
+                            "name": "state",
+                            "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
                             "type": "string"
                         },
                         {
-                            "description": "VPC the ip belongs to",
-                            "name": "vpcid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID the portable IP address is associated with",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the physical network this belongs to",
-                            "name": "physicalnetworkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account ID the portable IP address is associated with",
                             "name": "accountid",
+                            "description": "the account ID the portable IP address is associated with",
                             "type": "string"
                         },
                         {
-                            "description": "date the portal IP address was acquired",
+                            "name": "vpcid",
+                            "description": "VPC the ip belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "physicalnetworkid",
+                            "description": "the physical network this belongs to",
+                            "type": "string"
+                        },
+                        {
                             "name": "allocated",
+                            "description": "date the portal IP address was acquired",
                             "type": "date"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the Network where ip belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID the portable IP address is associated with",
+                            "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the netmask of the VLAN IP range",
-                    "name": "netmask",
+                    "name": "id",
+                    "description": "portable IP range ID",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway of the VLAN IP range",
                     "name": "gateway",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Deletes a Cisco ASA 1000v appliance",
-            "isasync": false,
-            "name": "deleteCiscoAsa1000vResource",
-            "params": [
-                {
-                    "description": "Cisco ASA 1000v resource ID",
-                    "length": 255,
-                    "name": "resourceid",
-                    "related": "addCiscoAsa1000vResource,listCiscoAsa1000vResources",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "description": "the gateway of the VLAN IP range",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "netmask",
+                    "description": "the netmask of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
+                    "type": "string"
+                },
+                {
+                    "name": "startip",
+                    "description": "the start ip of the portable IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "endip",
+                    "description": "the end ip of the portable IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "regionid",
+                    "description": "Region Id in which portable ip range is provisioned",
+                    "type": "integer"
                 }
             ]
         },
         {
+            "name": "updateCluster",
             "description": "Updates an existing cluster",
             "isasync": false,
-            "name": "updateCluster",
+            "related": "addCluster",
             "params": [
                 {
-                    "description": "hypervisor type of the cluster",
-                    "length": 255,
-                    "name": "clustertype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Allocation state of this cluster for allocation of new resources",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name",
-                    "length": 255,
-                    "name": "clustername",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "hypervisor type of the cluster",
-                    "length": 255,
                     "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
+                    "description": "hypervisor type of the cluster",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "whether this cluster is managed by cloudstack",
+                    "name": "clustername",
+                    "description": "the cluster name",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "managedstate",
-                    "required": false,
-                    "type": "string"
+                    "description": "whether this cluster is managed by cloudstack",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ID of the Cluster",
+                    "name": "clustertype",
+                    "description": "hypervisor type of the cluster",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "id",
-                    "related": "addCluster,updateCluster",
+                    "description": "the ID of the Cluster",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addCluster,updateCluster"
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "Allocation state of this cluster for allocation of new resources",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addCluster",
             "response": [
                 {
-                    "description": "whether this cluster is managed by cloudstack",
-                    "name": "managedstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID of the cluster",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name",
                     "name": "name",
+                    "description": "the cluster name",
                     "type": "string"
                 },
                 {
-                    "description": "the capacity of the Cluster",
+                    "name": "id",
+                    "description": "the cluster ID",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuovercommitratio",
+                    "description": "The cpu overcommit ratio of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "managedstate",
+                    "description": "whether this cluster is managed by cloudstack",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "the allocation state of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the type of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "ovm3vip",
+                    "description": "Ovm3 VIP to use for pooling and/or clustering",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisortype",
+                    "description": "the hypervisor type of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcedetails",
+                    "description": "Meta data associated with the zone (key/value pairs)",
+                    "type": "map"
+                },
+                {
                     "name": "capacity",
+                    "description": "the capacity of the Cluster",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the capacity currently in use",
-                            "name": "capacityused",
+                            "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
                             "type": "long"
                         },
                         {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
-                            "type": "long"
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
                         },
                         {
-                            "description": "the capacity type",
                             "name": "type",
+                            "description": "the capacity type",
                             "type": "short"
                         },
                         {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Pod ID",
-                            "name": "podid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Pod name",
-                            "name": "podname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the percentage of capacity currently in use",
-                            "name": "percentused",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone name",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Cluster name",
-                            "name": "clustername",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone ID",
                             "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "podname",
+                            "description": "the Pod name",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the type of the cluster",
-                    "name": "clustertype",
-                    "type": "string"
-                },
-                {
-                    "description": "the allocation state of the cluster",
-                    "name": "allocationstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "Meta data associated with the zone (key/value pairs)",
-                    "name": "resourcedetails",
-                    "type": "map"
-                },
-                {
-                    "description": "The cpu overcommit ratio of the cluster",
-                    "name": "cpuovercommitratio",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the cluster",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "The memory overcommit ratio of the cluster",
                     "name": "memoryovercommitratio",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the cluster",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor type of the cluster",
-                    "name": "hypervisortype",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the cluster",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "Ovm3 VIP to use for pooling and/or clustering",
-                    "name": "ovm3vip",
+                    "description": "The memory overcommit ratio of the cluster",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "List profile in ucs manager",
-            "isasync": false,
-            "name": "listUcsProfiles",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the id for the ucs manager",
-                    "length": 255,
-                    "name": "ucsmanagerid",
-                    "related": "addUcsManager",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "ucs profile dn",
-                    "name": "ucsdn",
-                    "type": "string"
-                }
-            ]
-        },
-        {
+            "name": "listStorageProviders",
             "description": "Lists storage providers.",
             "isasync": false,
-            "name": "listStorageProviders",
+            "related": "",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the type of storage provider: either primary or image",
-                    "length": 255,
                     "name": "type",
-                    "required": true,
-                    "type": "string"
+                    "description": "the type of storage provider: either primary or image",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the type of the storage provider: primary or image provider",
                     "name": "type",
+                    "description": "the type of the storage provider: primary or image provider",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the storage provider",
                     "name": "name",
+                    "description": "the name of the storage provider",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "update global load balancer rules.",
-            "isasync": true,
-            "name": "updateGlobalLoadBalancerRule",
+            "name": "listUcsProfiles",
+            "description": "List profile in ucs manager",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "session sticky method (sourceip) if not specified defaults to sourceip",
+                    "name": "ucsmanagerid",
+                    "description": "the id for the ucs manager",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "gslbstickysessionmethodname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the load balancer rule",
-                    "length": 4096,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "load balancer algorithm (roundrobin, leastconn, proximity) that is used to distributed traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'",
-                    "length": 255,
-                    "name": "gslblbmethod",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the global load balancer rule",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateGlobalLoadBalancerRule",
                     "required": true,
-                    "type": "uuid"
+                    "related": "addUcsManager"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "List of load balancer rules that are part of GSLB rule",
+                    "name": "ucsdn",
+                    "description": "ucs profile dn",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "getUserKeys",
+            "description": "This command allows the user to query the seceret and API keys for the account",
+            "since": "4.10.0",
+            "isasync": false,
+            "related": "registerUserKeys",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "ID of the user whose keys are required",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateUser,listUsers,enableUser,lockUser,getUser,createUser,disableUser"
+                }
+            ],
+            "response": [
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the registered user",
+                    "type": "string"
+                },
+                {
+                    "name": "apikey",
+                    "description": "the api key of the registered user",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateGlobalLoadBalancerRule",
+            "description": "update global load balancer rules.",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "gslbstickysessionmethodname",
+                    "description": "session sticky method (sourceip) if not specified defaults to sourceip",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "gslblbmethod",
+                    "description": "load balancer algorithm (roundrobin, leastconn, proximity) that is used to distributed traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the global load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateGlobalLoadBalancerRule"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer rule",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "project",
+                    "description": "the project name of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbdomainname",
+                    "description": "DNS domain name given for the global load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "global load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the global load balancer rule",
+                    "type": "string"
+                },
+                {
                     "name": "loadbalancerrule",
+                    "description": "List of load balancer rules that are part of GSLB rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the description of the load balancer",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the public ip address id",
-                            "name": "publicipid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the load balancer rule ID",
                             "name": "id",
+                            "description": "the load balancer rule ID",
                             "type": "string"
                         },
                         {
-                            "description": "the id of the zone the rule belongs to",
-                            "name": "zoneid",
+                            "name": "publicip",
+                            "description": "the public ip address",
                             "type": "string"
                         },
                         {
-                            "description": "is rule for display to the regular user",
+                            "name": "name",
+                            "description": "the name of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "algorithm",
+                            "description": "the load balancer algorithm (source, roundrobin, leastconn)",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the name of the zone the load balancer rule belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "publicipid",
+                            "description": "the public ip address id",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the load balancer",
+                            "type": "string"
+                        },
+                        {
+                            "name": "privateport",
+                            "description": "the private port",
+                            "type": "string"
+                        },
+                        {
+                            "name": "protocol",
+                            "description": "the protocol of the loadbalanacer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the id of the guest network the lb rule belongs to",
+                            "type": "string"
+                        },
+                        {
                             "name": "fordisplay",
+                            "description": "is rule for display to the regular user",
                             "type": "boolean"
                         },
                         {
-                            "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                            "name": "algorithm",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with load balancer",
                             "name": "tags",
+                            "description": "the list of resource tags associated with load balancer",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
                                     "name": "projectid",
+                                    "description": "the project id the tag belongs to",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the project name where tag belongs to",
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "project",
+                                    "description": "the project name where tag belongs to",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "tag value",
                                     "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         },
                         {
-                            "description": "the account of the load balancer rule",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the private port",
-                            "name": "privateport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the load balancer",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the public ip address",
-                            "name": "publicip",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the guest network the lb rule belongs to",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the public port",
-                            "name": "publicport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the rule",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the load balancer rule",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain of the load balancer rule",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr list to forward traffic from",
                             "name": "cidrlist",
+                            "description": "the cidr list to forward traffic from",
                             "type": "string"
                         },
                         {
-                            "description": "the protocol of the loadbalanacer rule",
-                            "name": "protocol",
+                            "name": "publicport",
+                            "description": "the public port",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the load balancer",
-                            "name": "name",
+                            "name": "domain",
+                            "description": "the domain of the load balancer rule",
                             "type": "string"
                         },
                         {
-                            "description": "the project id of the load balancer",
-                            "name": "projectid",
+                            "name": "account",
+                            "description": "the account of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the id of the zone the rule belongs to",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "DNS domain name given for the global load balancer",
-                    "name": "gslbdomainname",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the load balancer rule",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "session persistence method used for the global load balancer",
-                    "name": "gslbstickysessionmethodname",
-                    "type": "string"
-                },
-                {
-                    "description": "global load balancer rule ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the load balancer rule",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "Region Id in which global load balancer is created",
-                    "name": "regionid",
-                    "type": "integer"
-                },
-                {
-                    "description": "the project id of the load balancer",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the global load balancer rule",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "Load balancing method used for the global load balancer",
-                    "name": "gslblbmethod",
-                    "type": "string"
-                },
-                {
-                    "description": "GSLB service type",
                     "name": "gslbservicetype",
+                    "description": "GSLB service type",
                     "type": "string"
                 },
                 {
-                    "description": "the description of the global load balancer rule",
                     "name": "description",
+                    "description": "the description of the global load balancer rule",
                     "type": "string"
                 },
                 {
+                    "name": "gslbstickysessionmethodname",
+                    "description": "session persistence method used for the global load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "gslblbmethod",
+                    "description": "Load balancing method used for the global load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
                     "description": "the domain of the load balancer rule",
-                    "name": "domain",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the load balancer",
-                    "name": "project",
+                    "name": "regionid",
+                    "description": "Region Id in which global load balancer is created",
+                    "type": "integer"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the load balancer rule",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Creates a condition",
-            "isasync": true,
-            "name": "createCondition",
-            "params": [
-                {
-                    "description": "ID of the Counter.",
-                    "length": 255,
-                    "name": "counterid",
-                    "related": "createCounter,listCounters",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the domain ID of the account.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Relational Operator to be used with threshold.",
-                    "length": 255,
-                    "name": "relationaloperator",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the condition. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Threshold value.",
-                    "length": 255,
-                    "name": "threshold",
-                    "required": true,
-                    "type": "long"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the domain name of the owner.",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the Condition.",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the Condition.",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Details of the Counter.",
-                    "name": "counter",
-                    "type": "list"
-                },
-                {
-                    "description": "Threshold Value for the counter.",
-                    "name": "threshold",
-                    "type": "long"
-                },
-                {
-                    "description": "Relational Operator to be used with threshold.",
-                    "name": "relationaloperator",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the Condition",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the Condition owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of counter",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the Condition",
-                    "name": "project",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists projects and provides detailed information for listed projects",
-            "isasync": false,
             "name": "listProjects",
+            "description": "Lists projects and provides detailed information for listed projects",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "listProjectAccounts,activateProject,updateProject,suspendProject",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list projects by project ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject,listProjects",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomainChildren,listDomains"
                 },
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list projects by name",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "list projects by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list projects by state",
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
                     "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "List projects by tags (key/value pairs)",
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "tags",
-                    "required": false,
-                    "type": "map"
+                    "description": "List projects by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list projects by display text",
+                    "name": "state",
+                    "description": "list projects by state",
+                    "type": "string",
                     "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
                     "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "list projects by display text",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list projects by project ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "listProjectAccounts,activateProject,listProjects,updateProject,suspendProject"
                 }
             ],
-            "related": "listProjectAccounts,suspendProject,activateProject,updateProject",
             "response": [
                 {
-                    "description": "the total number of vpcs owned by project",
-                    "name": "vpctotal",
+                    "name": "account",
+                    "description": "the account name of the project's owner",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by project",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of vpcs available to be created for this project",
-                    "name": "vpcavailable",
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this project",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots stored by this project",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this project",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this project",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the project",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this project",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain name where the project belongs to",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the project can own",
                     "name": "vpclimit",
+                    "description": "the total number of vpcs the project can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores the project can own",
-                    "name": "cpulimit",
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this project can acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) the project can own",
-                    "name": "memorylimit",
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this project",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the project",
-                    "name": "state",
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by project",
+                    "type": "float"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the project",
                     "type": "string"
                 },
                 {
-                    "description": "the domain id the project belongs to",
-                    "name": "domainid",
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this project",
                     "type": "string"
                 },
                 {
-                    "description": "the total primary storage space (in GiB) the project can own",
+                    "name": "id",
+                    "description": "the id of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this project",
+                    "type": "long"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this project",
+                    "type": "string"
+                },
+                {
                     "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the project can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates available to be created by this project",
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
                     "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this project",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with vm",
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name where the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "projectaccountname",
+                    "description": "the project account name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this project",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with vm",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
                             "name": "customer",
+                            "description": "customer associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
+                            "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
                             "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "tag value",
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
                             "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
                             "type": "string"
                         }
-                    ],
+                    ]
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the project can own",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createCondition",
+            "description": "Creates a condition",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "relationaloperator",
+                    "description": "Relational Operator to be used with threshold.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "counterid",
+                    "description": "ID of the Counter.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listCounters,createCounter"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the account.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "threshold",
+                    "description": "Threshold value.",
+                    "type": "long",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the condition. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner.",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the Condition.",
+                    "type": "string"
+                },
+                {
+                    "name": "counter",
+                    "description": "Details of the Counter.",
                     "type": "list"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) available to be used for this project",
-                    "name": "secondarystorageavailable",
+                    "name": "relationaloperator",
+                    "description": "Relational Operator to be used with threshold.",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which can be created by this project",
-                    "name": "templatelimit",
+                    "name": "id",
+                    "description": "the id of the Condition",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of virtual machines available for this project to acquire",
-                    "name": "vmavailable",
+                    "name": "domainid",
+                    "description": "the domain id of the Condition owner",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of networks available to be created for this project",
-                    "name": "networkavailable",
+                    "name": "project",
+                    "description": "the project name of the Condition",
                     "type": "string"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) owned by project",
-                    "name": "secondarystoragetotal",
+                    "name": "projectid",
+                    "description": "the project id of the Condition.",
+                    "type": "string"
+                },
+                {
+                    "name": "threshold",
+                    "description": "Threshold Value for the counter.",
                     "type": "long"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) the project can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the project",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by project",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which have been created by this project",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines running for this project",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the account name of the project's owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by project",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this project",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this project",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the project",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by project",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this project",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this project",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this project",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this project",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume available for this project",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by project",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses this project can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this project to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the project can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this project",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this project",
-                    "name": "memoryavailable",
+                    "name": "zoneid",
+                    "description": "zone id of counter",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "createAccount",
             "description": "Creates an account",
             "isasync": false,
-            "name": "createAccount",
+            "related": "listAccounts,enableAccount,listAccounts",
             "params": [
                 {
-                    "description": "User UUID, required for adding account from external provisioning system",
+                    "name": "roleid",
+                    "description": "Creates the account under the specified role.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "userid",
                     "required": false,
-                    "type": "string"
+                    "related": "listRoles,updateRole"
                 },
                 {
-                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
-                    "length": 255,
-                    "name": "timezone",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain admin",
-                    "length": 255,
                     "name": "accounttype",
+                    "description": "Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain admin",
+                    "type": "short",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "timezone",
+                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "password",
+                    "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "userid",
+                    "description": "User UUID, required for adding account from external provisioning system",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "Creates the user under the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "Network domain for the account's networks",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "email",
+                    "description": "email",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "firstname",
+                    "description": "firstname",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "accountdetails",
+                    "description": "details for account used to store specific parameters",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "lastname",
+                    "description": "lastname",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "accountid",
+                    "description": "Account UUID, required for adding account from external provisioning system",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "Unique username.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
+                    "type": "long"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
                     "type": "short"
                 },
                 {
-                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
                 },
                 {
-                    "description": "firstname",
-                    "length": 255,
-                    "name": "firstname",
-                    "required": true,
-                    "type": "string"
+                    "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
+                    "type": "list"
                 },
                 {
-                    "description": "email",
-                    "length": 255,
-                    "name": "email",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "lastname",
-                    "length": 255,
-                    "name": "lastname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Creates the account under the specified role.",
-                    "length": 255,
-                    "name": "roleid",
-                    "related": "listRoles",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Account UUID, required for adding account from external provisioning system",
-                    "length": 255,
-                    "name": "accountid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "details for account used to store specific parameters",
-                    "length": 255,
-                    "name": "accountdetails",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "Unique username.",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Network domain for the account's networks",
-                    "length": 255,
-                    "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Creates the user under the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listAccounts,listAccounts,enableAccount",
-            "response": [
-                {
-                    "description": "the total number of public ip addresses this account can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this account",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
+                    "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "details for the account",
-                    "name": "accountdetails",
-                    "type": "map"
-                },
-                {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
+                    "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the network domain",
-                    "name": "networkdomain",
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
                     "type": "integer"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
-                    "name": "secondarystorageavailable",
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
                     "type": "long"
                 },
                 {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this account",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of users associated with account",
                     "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
-                            "name": "iscallerchilddomain",
+                            "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the account type of the user",
-                            "name": "accounttype",
-                            "type": "short"
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
+                            "type": "string"
                         },
                         {
-                            "description": "the api key of the user",
                             "name": "apikey",
+                            "description": "the api key of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the secret key of the user",
-                            "name": "secretkey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the date and time the user account was created",
                             "name": "created",
+                            "description": "the date and time the user account was created",
                             "type": "date"
                         },
                         {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
+                            "name": "secretkey",
+                            "description": "the secret key of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the user email address",
-                            "name": "email",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if user is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the user ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the role",
                             "name": "roleid",
+                            "description": "the ID of the role",
                             "type": "string"
                         },
                         {
-                            "description": "the domain name of the user",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the role",
-                            "name": "rolename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the role",
                             "name": "roletype",
+                            "description": "the type of the role",
                             "type": "string"
                         },
                         {
-                            "description": "the user name",
-                            "name": "username",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user state",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user firstname",
-                            "name": "firstname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account name of the user",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the timezone user was created in",
                             "name": "timezone",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects the account can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the account",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this account",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by account",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the default zone of the account",
-                    "name": "defaultzoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if account is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "account type (admin, domain-admin, user)",
-                    "name": "accounttype",
-                    "type": "short"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of acl groups that account belongs to",
-                    "name": "groups",
-                    "type": "list"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this account",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this account",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Revert VM from a vmsnapshot.",
-            "isasync": true,
-            "name": "revertToVMSnapshot",
-            "params": [
-                {
-                    "description": "The ID of the vm snapshot",
-                    "length": 255,
-                    "name": "vmsnapshotid",
-                    "related": "createVMSnapshot,listVMSnapshot",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,deployVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-            "response": [
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
+                            "description": "the timezone user was created in",
                             "type": "string"
                         },
                         {
-                            "description": "the domain name of the security group",
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                            "type": "string"
+                        },
+                        {
                             "name": "domain",
+                            "description": "the domain name of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
+                            "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
                             "type": "boolean"
                         },
                         {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Add a new guest OS type",
-            "isasync": true,
-            "name": "addGuestOs",
-            "params": [
-                {
-                    "description": "Unique display name for Guest OS",
-                    "length": 255,
-                    "name": "osdisplayname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Optional name for Guest OS",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "ID of Guest OS category",
-                    "length": 255,
-                    "name": "oscategoryid",
-                    "related": "listOsCategories",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the ID of the OS type",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS category",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name/description of the OS type",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "is the guest OS user defined",
-                    "name": "isuserdefined",
-                    "type": "string"
-                }
-            ],
-            "since": "4.4.0"
-        },
-        {
-            "description": "Lists host tags",
-            "isasync": false,
-            "name": "listHostTags",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the ID of the host tag",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host tag",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID of the host tag",
-                    "name": "hostid",
-                    "type": "long"
-                }
-            ]
-        },
-        {
-            "description": "Removes a Guest OS Mapping.",
-            "isasync": true,
-            "name": "removeGuestOsMapping",
-            "params": [
-                {
-                    "description": "ID of the guest OS mapping",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.4.0"
-        },
-        {
-            "description": "Registers an existing ISO into the CloudStack Cloud.",
-            "isasync": false,
-            "name": "registerIso",
-            "params": [
-                {
-                    "description": "the name of the ISO",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "true if you want to register the ISO to be publicly available to all users, false otherwise.",
-                    "length": 255,
-                    "name": "ispublic",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this ISO is bootable. If not passed explicitly its assumed to be true",
-                    "length": 255,
-                    "name": "bootable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Register ISO for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Image store UUID",
-                    "length": 255,
-                    "name": "imagestoreuuid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS type that best represents the OS of this ISO. If the ISO is bootable this parameter needs to be passed",
-                    "length": 255,
-                    "name": "ostypeid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if the ISO or its derivatives are extractable; default is false",
-                    "length": 255,
-                    "name": "isextractable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional account name. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if ISO contains XS/VMWare tools inorder to support dynamic scaling of VM CPU/memory",
-                    "length": 255,
-                    "name": "isdynamicallyscalable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the URL to where the ISO is currently being hosted",
-                    "length": 2048,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the MD5 checksum value of this ISO",
-                    "length": 255,
-                    "name": "checksum",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true if you want this ISO to be featured",
-                    "length": 255,
-                    "name": "isfeatured",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the zone you wish to register the ISO to.",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the display text of the ISO. This is usually used for display purposes.",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-            "response": [
-                {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the template",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the template display text",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this template was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the project name of the template",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "additional key/value details tied with template",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the type of the template",
-                    "name": "templatetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the format of the template.",
-                    "name": "format",
-                    "type": "imageformat"
-                },
-                {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
-                    "type": "string"
-                },
-                {
-                    "description": "checksum of the template",
-                    "name": "checksum",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this template was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the status of the template",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the size of the template",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists Cisco ASA 1000v appliances",
-            "isasync": false,
-            "name": "listCiscoAsa1000vResources",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Cisco ASA 1000v resource ID",
-                    "length": 255,
-                    "name": "resourceid",
-                    "related": "addCiscoAsa1000vResource,listCiscoAsa1000vResources",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Hostname or ip address of the Cisco ASA 1000v appliance.",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "addCiscoAsa1000vResource",
-            "response": [
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                }
-            ]
-        },
-        {
-            "description": "Lists the volumes of elastistor",
-            "isasync": false,
-            "name": "listElastistorVolume",
-            "params": [
-                {
-                    "description": "the ID of the account",
-                    "length": 255,
-                    "name": "id",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the id of the volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "graceallowed",
-                    "name": "graceallowed",
-                    "type": "string"
-                },
-                {
-                    "description": "deduplication",
-                    "name": "deduplication",
-                    "type": "string"
-                },
-                {
-                    "description": "syncronization",
-                    "name": "sync",
-                    "type": "string"
-                },
-                {
-                    "description": "compression",
-                    "name": "compression",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the volume",
-                    "name": "name",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "deletes a range of portable public IP's associated with a region",
-            "isasync": true,
-            "name": "deletePortableIpRange",
-            "params": [
-                {
-                    "description": "Id of the portable ip range",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Lists Nicira NVP devices",
-            "isasync": false,
-            "name": "listNiciraNvpDevices",
-            "params": [
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "nicira nvp device ID",
-                    "length": 255,
-                    "name": "nvpdeviceid",
-                    "related": "listNiciraNvpDevices,addNiciraNvpDevice",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "addNiciraNvpDevice",
-            "response": [
-                {
-                    "description": "this L2 gateway service Uuid",
-                    "name": "l2gatewayserviceuuid",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the Nicire Nvp",
-                    "name": "nvpdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this Nirica Nvp belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "niciradevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the transport zone Uuid",
-                    "name": "transportzoneuuid",
-                    "type": "string"
-                },
-                {
-                    "description": "this L3 gateway service Uuid",
-                    "name": "l3gatewayserviceuuid",
-                    "type": "string"
-                },
-                {
-                    "description": "the controller Ip address",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "add a baremetal pxe server",
-            "isasync": true,
-            "name": "addBaremetalPxeKickStartServer",
-            "params": [
-                {
-                    "description": "Credentials to reach external pxe device",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "URL of the external pxe device",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Pod Id",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Credentials to reach external pxe device",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Tftp root directory of PXE server",
-                    "length": 255,
-                    "name": "tftpdir",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "type of pxe device",
-                    "length": 255,
-                    "name": "pxeservertype",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "Tftp root directory of PXE server",
-                    "name": "tftpdir",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists all alerts.",
-            "isasync": false,
-            "name": "listAlerts",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the alert",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listAlerts",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list by alert type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list by alert name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the name of the alert",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "One of the following alert types: MEMORY = 0, CPU = 1, STORAGE = 2, STORAGE_ALLOCATED = 3, PUBLIC_IP = 4, PRIVATE_IP = 5, SECONDARY_STORAGE = 6, HOST = 7, USERVM = 8, DOMAIN_ROUTER = 9, CONSOLE_PROXY = 10, ROUTING = 11: lost connection to default route (to the gateway), STORAGE_MISC = 12, USAGE_SERVER = 13, MANAGMENT_NODE = 14, DOMAIN_ROUTER_MIGRATE = 15, CONSOLE_PROXY_MIGRATE = 16, USERVM_MIGRATE = 17, VLAN = 18, SSVM = 19, USAGE_SERVER_RESULT = 20, STORAGE_DELETE = 21, UPDATE_RESOURCE_COUNT = 22, USAGE_SANITY_RESULT = 23, DIRECT_ATTACHED_PUBLIC_IP = 24, LOCAL_STORAGE = 25, RESOURCE_LIMIT_EXCEEDED = 26, SYNC = 27, UPLOAD_FAILED = 28, OOBM_AUTH_ERROR = 29",
-                    "name": "type",
-                    "type": "short"
-                },
-                {
-                    "description": "description of the alert",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the alert",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the alert was sent",
-                    "name": "sent",
-                    "type": "date"
-                }
-            ]
-        },
-        {
-            "description": "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.",
-            "isasync": true,
-            "name": "deployVirtualMachine",
-            "params": [
-                {
-                    "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter",
-                    "length": 255,
-                    "name": "securitygroupnames",
-                    "related": "createSecurityGroup",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the arbitrary size for the DATADISK volume. Mutually exclusive with diskOfferingId",
-                    "length": 255,
-                    "name": "size",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "name of the ssh key pair used to login to the virtual machine",
-                    "length": 255,
-                    "name": "keypair",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true if start vm after creating; defaulted to true if not specified",
-                    "length": 255,
-                    "name": "startvm",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Optional field to resize root disk on deploy. Value is in GB. Only applies to template-based deployments. Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided",
-                    "length": 255,
-                    "name": "rootdisksize",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "long"
-                },
-                {
-                    "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the disk offering for the virtual machine. If the template is of ISO format, the diskOfferingId is for the root disk volume. Otherwise this parameter is used to indicate the offering for the data disk volume. If the templateId parameter passed is from a Template object, the diskOfferingId refers to a DATA Disk Volume created. If the templateId parameter passed is from an ISO object, the diskOfferingId refers to a ROOT Disk Volume created.",
-                    "length": 255,
-                    "name": "diskofferingid",
-                    "related": "createDiskOffering",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "availability zone for the virtual machine",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 2KB of data after base64 encoding. Using HTTP POST(via POST body), you can send up to 32K of data after base64 encoding.",
-                    "length": 32768,
-                    "name": "userdata",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "ip to network mapping. Can't be specified with networkIds parameter. Example: iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].ipv6=fc00:1234:5678::abcd&iptonetworklist[0].networkid=uuid - requests to use ip 10.10.10.11 in network id=uuid",
-                    "length": 255,
-                    "name": "iptonetworklist",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the ip address for default vm's network",
-                    "length": 255,
-                    "name": "ipaddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional account for the virtual machine. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "destination Host ID to deploy the VM to - parameter available for root admin only",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the hypervisor on which to deploy the virtual machine. The parameter is required and respected only when hypervisor info is not set on the ISO/Template passed to the call",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional group for the virtual machine",
-                    "length": 255,
-                    "name": "group",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list of network ids used by virtual machine. Can't be specified with ipToNetworkList parameter",
-                    "length": 255,
-                    "name": "networkids",
-                    "related": "createNetwork,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "comma separated list of security groups id that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter",
-                    "length": 255,
-                    "name": "securitygroupids",
-                    "related": "createSecurityGroup",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "Deploy vm for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Mutually exclusive with affinitygroupnames parameter",
-                    "length": 255,
-                    "name": "affinitygroupids",
-                    "related": "",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "an optional keyboard device type for the virtual machine. valid value can be one of de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk,us",
-                    "length": 255,
-                    "name": "keyboard",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine",
-                    "length": 255,
-                    "name": "templateid",
-                    "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "used to specify the custom parameters.",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "map"
-                },
-                {
-                    "description": "an optional user generated name for the virtual machine",
-                    "length": 255,
-                    "name": "displayname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Deployment planner to use for vm allocation. Available to ROOT admin only",
-                    "length": 255,
-                    "name": "deploymentplanner",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "host name for the virtual machine",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ipv6 address for default vm's network",
-                    "length": 255,
-                    "name": "ip6address",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering for the virtual machine",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "updateServiceOffering,listServiceOfferings",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine.Mutually exclusive with affinitygroupids parameter",
-                    "length": 255,
-                    "name": "affinitygroupnames",
-                    "related": "",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "an optional field, whether to the display the vm to the end user or not.",
-                    "length": 255,
-                    "name": "displayvm",
-                    "required": false,
-                    "since": "4.2",
-                    "type": "boolean"
-                }
-            ],
-            "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-            "response": [
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
                             "name": "account",
+                            "description": "the account name of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Upgrades router to use newer template",
-            "isasync": false,
-            "name": "upgradeRouterTemplate",
-            "params": [
-                {
-                    "description": "upgrades all routers owned by the specified account",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "upgrades all routers within the specified pod",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "upgrades all routers within the specified zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "upgrades all routers within the specified cluster",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "upgrades router with the specified Id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "destroyRouter,listRouters",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "upgrades all routers owned by the specified domain",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the current status of the latest async job acting on this object",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-                    "description": "the UUID of the latest async job acting on this object",
-                    "name": "jobid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Extracts volume",
-            "isasync": true,
-            "name": "extractVolume",
-            "params": [
-                {
-                    "description": "the url to which the volume would be extracted",
-                    "length": 2048,
-                    "name": "url",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVolumes,attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the zone where the volume is located",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD",
-                    "length": 255,
-                    "name": "mode",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "extractTemplate",
-            "response": [
-                {
-                    "description": "zone ID the object was extracted from",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the upload id of extracted object",
-                    "name": "extractId",
-                    "type": "string"
-                },
-                {
-                    "description": "zone name the object was extracted from",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the extraction",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the extracted object",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "name": "resultstring",
-                    "type": "string"
-                },
-                {
-                    "description": "the percentage of the entity uploaded to the specified location",
-                    "name": "uploadpercentage",
-                    "type": "integer"
-                },
-                {
-                    "description": "the time and date the object was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the account id to which the extracted object belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-
-                },
-                {
-                    "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the mode of extraction - upload or download",
-                    "name": "extractMode",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of extracted object",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the extracted object",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the storage",
-                    "name": "storagetype",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists all VLAN IP ranges.",
-            "isasync": false,
-            "name": "listVlanIpRanges",
-            "params": [
-                {
-                    "description": "the ID of the VLAN IP range",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVlanIpRanges,dedicatePublicIpRange",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID or VID of the VLAN. Default is an \"untagged\" VLAN.",
-                    "length": 255,
-                    "name": "vlan",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "network id of the VLAN IP range",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "createNetwork,updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "project who will own the VLAN",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID with which the VLAN IP range is associated.  If used with the account parameter, returns all VLAN IP ranges for that account in the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the Pod ID of the VLAN IP range",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if VLAN is of Virtual type, false if Direct",
-                    "length": 255,
-                    "name": "forvirtualnetwork",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the Zone ID of the VLAN IP range",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the account with which the VLAN IP range is associated. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "physical network id of the VLAN IP range",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "dedicatePublicIpRange",
-            "response": [
-                {
-                    "description": "the network id of vlan range",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the VLAN IP range",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the VLAN IP range",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name for the VLAN IP range",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the VLAN IP range",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vlan range",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the VLAN IP range",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ipv6 of the VLAN IP range",
-                    "name": "startipv6",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the VLAN IP range",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the VLAN IP range",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID or VID of the VLAN.",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ipv6 of the VLAN IP range",
-                    "name": "endipv6",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vlan range",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ip of the VLAN IP range",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ip of the VLAN IP range",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the VLAN IP range",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the VLAN IP range",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the gateway of the VLAN IP range",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the VLAN IP range",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists Nuage VSP devices",
-            "isasync": false,
-            "name": "listNuageVspDevices",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Nuage VSP device ID",
-                    "length": 255,
-                    "name": "vspdeviceid",
-                    "related": "updateNuageVspDevice,listNuageVspDevices",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "updateNuageVspDevice",
-            "response": [
-                {
-                    "description": "the CMS ID generated by the Nuage VSD",
-                    "name": "cmsid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the physical network to which this Nuage VSP belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
-                    "name": "retryinterval",
-                    "type": "long"
-                },
-                {
-                    "description": "the version of the API to use to communicate to Nuage VSD",
-                    "name": "apiversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the port to communicate to Nuage VSD",
-                    "name": "port",
-                    "type": "int"
-                },
-                {
-                    "description": "the service provider name corresponding to this Nuage VSP device",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname of the Nuage VSD",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Nuage VSP device",
-                    "name": "nuagedevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the device id of the Nuage VSD",
-                    "name": "vspdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of retries on failure to communicate to Nuage VSD",
-                    "name": "retrycount",
-                    "type": "int"
-                }
-            ],
-            "since": "4.5"
-        },
-        {
-            "description": "Cancels host maintenance.",
-            "isasync": true,
-            "name": "cancelHostMaintenance",
-            "params": [
-                {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,reconnectHost,addHost,cancelHostMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "addBaremetalHost,reconnectHost,addHost",
-            "response": [
-                {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the host type",
-                    "name": "type",
-                    "type": "type"
-                },
-                {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the host",
-                    "name": "state",
-                    "type": "status"
-                },
-                {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
-                    "type": "date"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the amount of the host's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the host out-of-band management information",
-                    "name": "outofbandmanagement",
-                    "type": "outofbandmanagementresponse"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the host's memory currently used",
-                    "name": "memoryused",
-                    "type": "long"
-                },
-                {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
-                    "type": "boolean"
-                },
-                {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
-                    "type": "string"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
-                    "type": "long"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
-                    "type": "string"
-                },
-                {
-                    "description": "GPU cards present in the host",
-                    "name": "gpugroup",
-                    "response": [
-                        {
-                            "description": "the list of enabled vGPUs",
-                            "name": "vgpu",
-                            "response": [
-                                {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
-                                    "name": "maxcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
-                                    "name": "remainingcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
-                                    "name": "maxvgpuperpgpu",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum Y resolution per display",
-                                    "name": "maxresolutiony",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Video RAM for this vGPU type",
-                                    "name": "videoram",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Model Name of vGPU",
-                                    "name": "vgputype",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "GPU cards present in the host",
-                            "name": "gpugroupname",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the name of the host",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "events available for the host",
-                    "name": "events",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Updates a Zone.",
-            "isasync": false,
-            "name": "updateZone",
-            "params": [
-                {
-                    "description": "Network domain name for the networks in the zone; empty string will update domain with NULL value",
-                    "length": 255,
-                    "name": "domain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "updates a private zone to public if set, but not vice-versa",
-                    "length": 255,
-                    "name": "ispublic",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the Zone",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the Zone",
-                    "length": 255,
-                    "name": "dns1",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the dhcp Provider for the Zone",
-                    "length": 255,
-                    "name": "dhcpprovider",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Allocation state of this cluster for allocation of new resources",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for IPv6 network in the Zone",
-                    "length": 255,
-                    "name": "ip6dns2",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for IPv6 network in the Zone",
-                    "length": 255,
-                    "name": "ip6dns1",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the dns search order list",
-                    "length": 255,
-                    "name": "dnssearchorder",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "true if local storage offering enabled, false otherwise",
-                    "length": 255,
-                    "name": "localstorageenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the first internal DNS for the Zone",
-                    "length": 255,
-                    "name": "internaldns1",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the details for the Zone",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the guest CIDR address for the Zone",
-                    "length": 255,
-                    "name": "guestcidraddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the Zone",
-                    "length": 255,
-                    "name": "dns2",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Zone",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listZones,listZones,createZone,updateZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the second internal DNS for the Zone",
-                    "length": 255,
-                    "name": "internaldns2",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "listZones,listZones,createZone",
-            "response": [
-                {
-                    "description": "the first IPv6 DNS for the Zone",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the network type of the zone; can be Basic or Advanced",
-                    "name": "networktype",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with zone.",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "Zone name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the second internal DNS for the Zone",
-                    "name": "internaldns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the allocation state of the cluster",
-                    "name": "allocationstate",
-                    "type": "string"
-                },
-                {
-                    "description": "true if local storage offering enabled, false otherwise",
-                    "name": "localstorageenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Zone id",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the Zone",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest CIDR address for the Zone",
-                    "name": "guestcidraddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the dhcp Provider for the Zone",
-                    "name": "dhcpprovider",
-                    "type": "string"
-                },
-                {
-
-                },
-                {
-                    "description": "the second IPv6 DNS for the Zone",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the zone",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if security groups support is enabled, false otherwise",
-                    "name": "securitygroupsenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the capacity of the Zone",
-                    "name": "capacity",
-                    "response": [
-                        {
-                            "description": "the Cluster name",
-                            "name": "clustername",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the percentage of capacity currently in use",
-                            "name": "percentused",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity type",
-                            "name": "type",
+                            "name": "accounttype",
+                            "description": "the account type of the user",
                             "type": "short"
                         },
                         {
-                            "description": "the Pod ID",
-                            "name": "podid",
+                            "name": "state",
+                            "description": "the user state",
                             "type": "string"
                         },
                         {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Zone name",
-                            "name": "zonename",
+                            "name": "username",
+                            "description": "the user name",
                             "type": "string"
                         },
                         {
-                            "description": "the Zone ID",
-                            "name": "zoneid",
+                            "name": "id",
+                            "description": "the user ID",
                             "type": "string"
                         },
                         {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
+                            "name": "firstname",
+                            "description": "the user firstname",
                             "type": "string"
                         },
                         {
-                            "description": "the capacity currently in use",
-                            "name": "capacityused",
-                            "type": "long"
+                            "name": "rolename",
+                            "description": "the name of the role",
+                            "type": "string"
                         },
                         {
-                            "description": "the Pod name",
-                            "name": "podname",
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "lastname",
+                            "description": "the user lastname",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "Meta data associated with the zone (key/value pairs)",
-                    "name": "resourcedetails",
-                    "type": "map"
-                },
-                {
-                    "description": "Zone description",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the containing domain, null for public zones",
-                    "name": "domainname",
-                    "type": "string"
-                },
-                {
-                    "description": "the first internal DNS for the Zone",
-                    "name": "internaldns1",
-                    "type": "string"
-                },
-                {
-                    "description": "Zone Token",
-                    "name": "zonetoken",
-                    "type": "string"
-                },
-                {
-                    "description": "Network domain name for the networks in the zone",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the Zone",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the UUID of the containing domain, null for public zones",
-                    "name": "domainid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists project's accounts",
-            "isasync": false,
-            "name": "listProjectAccounts",
-            "params": [
-                {
-                    "description": "ID of the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "listProjectAccounts,suspendProject,activateProject,updateProject",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list accounts of the project by role",
-                    "length": 255,
-                    "name": "role",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list accounts of the project by account name",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "suspendProject,activateProject,updateProject",
-            "response": [
-                {
-                    "description": "the list of resource tags associated with vm",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this project",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this project",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this project",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the project can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by project",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs the project can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this project",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the project can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this project to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this project",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the project can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by project",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which have been created by this project",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots stored by this project",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this project",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the id of the project",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by project",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this project",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this project",
                     "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores owned by project",
-                    "name": "cputotal",
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
                     "type": "long"
                 },
                 {
-                    "description": "the total primary storage space (in GiB) the project can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by project",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain id the project belongs to",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this project",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the domain name where the project belongs to",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this project",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by project",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which can be created by this project",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the project",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this project",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the project",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this project",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this project",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this project",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this project can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this project",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this project",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines available for this project to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the project's owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this project",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the project can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the project",
-                    "name": "name",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Adds F5 external load balancer appliance.",
-            "isasync": false,
-            "name": "addExternalLoadBalancer",
-            "params": [
-                {
-                    "description": "Username of the external load balancer appliance.",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Zone in which to add the external load balancer appliance.",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "URL of the external load balancer appliance.",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Password of the external load balancer appliance.",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the management IP address of the external load balancer",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external load balancer",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID of the external load balancer",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the username that's used to log in to the external load balancer",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the external load balancer",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external load balancer",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external load balancer",
-                    "name": "numretries",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Updates an existing autoscale policy.",
-            "isasync": true,
-            "name": "updateAutoScalePolicy",
-            "params": [
-                {
-                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
-                    "length": 255,
-                    "name": "quiettime",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the duration for which the conditions have to be true before action is taken",
-                    "length": 255,
-                    "name": "duration",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
-                    "length": 255,
-                    "name": "conditionids",
-                    "related": "",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the ID of the autoscale policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateAutoScalePolicy,listAutoScalePolicies",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listAutoScalePolicies",
-            "response": [
-                {
-                    "description": "the project name of the autoscale policy",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
-                    "name": "quiettime",
-                    "type": "integer"
-                },
-                {
-                    "description": "the account owning the autoscale policy",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id autoscale policy",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the autoscale policy",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale policy ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the autoscale policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the duration for which the conditions have to be true before action is taken",
-                    "name": "duration",
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
-                    "name": "conditions",
-                    "type": "list"
-                }
-            ]
-        },
-        {
-            "description": "Creates a disk offering.",
-            "isasync": false,
-            "name": "createDiskOffering",
-            "params": [
-                {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
-                    "length": 255,
-                    "name": "hypervisorsnapshotreserve",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional field, whether to display the offering to the end user or not.",
-                    "length": 255,
-                    "name": "displayoffering",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "size of the disk offering in GB (1GB = 1,073,741,824 bytes)",
-                    "length": 255,
-                    "name": "disksize",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "io requests write rate of the disk offering",
-                    "length": 255,
-                    "name": "iopswriterate",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the containing domain, null for public offerings",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the storage type of the disk offering. Values are local and shared.",
-                    "length": 255,
-                    "name": "storagetype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "tags for the disk offering",
-                    "length": 4096,
-                    "name": "tags",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk offering",
-                    "length": 255,
-                    "name": "bytesreadrate",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "whether disk offering iops is custom or not",
-                    "length": 255,
-                    "name": "customizediops",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "bytes write rate of the disk offering",
-                    "length": 255,
-                    "name": "byteswriterate",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "min iops of the disk offering",
-                    "length": 255,
-                    "name": "miniops",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "io requests read rate of the disk offering",
-                    "length": 255,
-                    "name": "iopsreadrate",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
-                    "length": 255,
-                    "name": "provisioningtype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "whether disk offering size is custom or not",
-                    "length": 255,
-                    "name": "customized",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "alternate display text of the disk offering",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "max iops of the disk offering",
-                    "length": 255,
-                    "name": "maxiops",
-                    "required": false,
-                    "type": "long"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "true if disk offering uses custom size, false otherwise",
-                    "name": "iscustomized",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cache mode to use for this disk offering. none, writeback or writethrough",
-                    "name": "cacheMode",
-                    "type": "string"
-                },
-                {
-                    "description": "the date this disk offering was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the storage type for this disk offering",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if disk offering uses custom iops, false otherwise",
-                    "name": "iscustomizediops",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
-                    "name": "hypervisorsnapshotreserve",
-                    "type": "integer"
-                },
-                {
-                    "description": "whether to display the offering to the end user or not.",
-                    "name": "displayoffering",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the min iops of the disk offering",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "bytes write rate of the disk offering",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain name this disk offering belongs to. Ignore this information as it is not currently applicable.",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the tags for the disk offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk offering",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests read rate of the disk offering",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the size of the disk offering in GB",
-                    "name": "disksize",
-                    "type": "long"
-                },
-                {
-                    "description": "unique ID of the disk offering",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the disk offering.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the max iops of the disk offering",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable.",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk offering",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                }
-            ]
-        },
-        {
-            "description": "Lists all volumes.",
-            "isasync": false,
-            "name": "listVolumes",
-            "params": [
-                {
-                    "description": "the IDs of the volumes, mutually exclusive with id",
-                    "length": 255,
-                    "name": "ids",
-                    "related": "listVolumes,attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "since": "4.9",
-                    "type": "list"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "displayvolume",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list volumes on specified host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost,addHost",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject,updateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the name of the disk volume",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVolumes,attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the storage pool, available to ROOT admin only",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the availability zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the type of disk volume",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the pod id the disk volume belongs to",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list volumes by disk offering",
-                    "length": 255,
-                    "name": "diskofferingid",
-                    "related": "",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "uuid"
-                }
-            ],
-            "related": "attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-            "response": [
-                {
-                    "description": "the date the disk volume was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "provisioning type used to create volumes.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the disk offering",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "need quiesce vm or not when taking snapshot",
-                    "name": "quiescevm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the path of the volume",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the service offering for root disk",
-                    "name": "serviceofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the virtual machine",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the disk volume",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the status of the volume",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the disk offering",
-                    "name": "diskofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
-                    "type": "date"
-                },
-                {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the boolean state of whether the volume is destroyed or not",
-                    "name": "destroyed",
-                    "type": "boolean"
-                },
-                {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
-                    "name": "displayvolume",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Creates a load balancer health check policy",
-            "isasync": true,
-            "name": "createLBHealthCheckPolicy",
-            "params": [
-                {
-                    "description": "HTTP ping path",
-                    "length": 255,
-                    "name": "pingpath",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the description of the load balancer health check policy",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Amount of time between health checks (1 sec - 20940 sec)",
-                    "length": 255,
-                    "name": "intervaltime",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Time to wait when receiving a response from the health check (2sec - 60 sec)",
-                    "length": 255,
-                    "name": "responsetimeout",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of consecutive health check failures before declaring an instance unhealthy",
-                    "length": 255,
-                    "name": "unhealthythreshold",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of consecutive health check success before declaring an instance healthy",
-                    "length": 255,
-                    "name": "healthythreshold",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "listLBHealthCheckPolicies",
-            "response": [
-                {
-                    "description": "the list of healthcheckpolicies",
-                    "name": "healthcheckpolicy",
-                    "response": [
-                        {
-                            "description": "the description of the healthcheck policy",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the policy",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Number of consecutive health check failures before declaring an instance unhealthy.",
-                            "name": "unhealthcheckthresshold",
-                            "type": "int"
-                        },
-                        {
-                            "description": "Time to wait when receiving a response from the health check",
-                            "name": "responsetime",
-                            "type": "int"
-                        },
-                        {
-                            "description": "Number of consecutive health check success before declaring an instance healthy",
-                            "name": "healthcheckthresshold",
-                            "type": "int"
-                        },
-                        {
-                            "description": "the LB HealthCheck policy ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Amount of time between health checks",
-                            "name": "healthcheckinterval",
-                            "type": "int"
-                        },
-                        {
-                            "description": "the pingpath  of the healthcheck policy",
-                            "name": "pingpath",
-                            "type": "string"
-                        },
-                        {
-                            "description": "is policy for display to the regular user",
-                            "name": "fordisplay",
-                            "type": "boolean"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the domain of the HealthCheck policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the HealthCheck policy",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the zone the HealthCheck policy belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the HealthCheck policy",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the LB rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Locks a user account",
-            "isasync": false,
-            "name": "lockUser",
-            "params": [
-                {
-                    "description": "Locks user by user ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "disableUser,lockUser,enableUser,getUser,listUsers,updateUser,createUser",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "disableUser,enableUser,getUser,listUsers,updateUser,createUser",
-            "response": [
-                {
-                    "description": "the user name",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the user account was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the account ID of the user",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if user is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account name of the user",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the boolean value representing if the updating target is in caller's child domain",
-                    "name": "iscallerchilddomain",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the user email address",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "the user ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role",
                     "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
                     "type": "string"
                 },
                 {
-                    "description": "the api key of the user",
-                    "name": "apikey",
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the user firstname",
-                    "name": "firstname",
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
+                    "type": "long"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the account type of the user",
-                    "name": "accounttype",
-                    "type": "short"
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
+                    "type": "string"
                 },
                 {
-                    "description": "the user state",
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the account",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the role",
-                    "name": "rolename",
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the timezone user was created in",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the secret key of the user",
-                    "name": "secretkey",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the user",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the user",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
                     "name": "roleid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists load balancer health check policies.",
-            "isasync": false,
-            "name": "listLBHealthCheckPolicies",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the health check policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listLBHealthCheckPolicies",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
+                    "description": "the ID of the role",
                     "type": "string"
                 },
                 {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the account of the HealthCheck policy",
-                    "name": "account",
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the list of healthcheckpolicies",
-                    "name": "healthcheckpolicy",
-                    "response": [
-                        {
-                            "description": "Amount of time between health checks",
-                            "name": "healthcheckinterval",
-                            "type": "int"
-                        },
-                        {
-                            "description": "Number of consecutive health check failures before declaring an instance unhealthy.",
-                            "name": "unhealthcheckthresshold",
-                            "type": "int"
-                        },
-                        {
-                            "description": "the pingpath  of the healthcheck policy",
-                            "name": "pingpath",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the healthcheck policy",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Number of consecutive health check success before declaring an instance healthy",
-                            "name": "healthcheckthresshold",
-                            "type": "int"
-                        },
-                        {
-                            "description": "is policy for display to the regular user",
-                            "name": "fordisplay",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the state of the policy",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Time to wait when receiving a response from the health check",
-                            "name": "responsetime",
-                            "type": "int"
-                        },
-                        {
-                            "description": "the LB HealthCheck policy ID",
-                            "name": "id",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
+                    "name": "accountdetails",
+                    "description": "details for the account",
+                    "type": "map"
                 },
                 {
-                    "description": "the LB rule ID",
-                    "name": "lbruleid",
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the zone the HealthCheck policy belongs to",
-                    "name": "zoneid",
+                    "name": "defaultzoneid",
+                    "description": "the default zone of the account",
                     "type": "string"
                 },
                 {
-                    "description": "the domain of the HealthCheck policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the HealthCheck policy",
-                    "name": "domainid",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Creates a network",
-            "isasync": false,
-            "name": "createNetwork",
-            "params": [
-                {
-                    "description": "the gateway of the IPv6 network. Required for Shared networks",
-                    "length": 255,
-                    "name": "ip6gateway",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the network. Required for shared networks and isolated networks when it belongs to VPC",
-                    "length": 255,
-                    "name": "netmask",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "length": 255,
-                    "name": "displaynetwork",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the zone ID for the network",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ending IPv6 address in the IPv6 network range",
-                    "length": 255,
-                    "name": "endipv6",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ending IP address in the network IP range. If not specified, will be defaulted to startIP",
-                    "length": 255,
-                    "name": "endip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the CIDR of IPv6 network, must be at least /64",
-                    "length": 255,
-                    "name": "ip6cidr",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of the network. Required for shared networks and isolated networks when it belongs to VPC",
-                    "length": 255,
-                    "name": "gateway",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the network",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the beginning IP address in the network IP range",
-                    "length": 255,
-                    "name": "startip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "domain ID of the account owning a network",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID or VID of the network",
-                    "length": 255,
-                    "name": "vlan",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the isolated private VLAN for this network",
-                    "length": 255,
-                    "name": "isolatedpvlan",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the network offering ID",
-                    "length": 255,
-                    "name": "networkofferingid",
-                    "related": "listNetworkOfferings",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Defines whether to allow subdomains to use networks dedicated to their parent domain(s). Should be used with aclType=Domain, defaulted to allow.subdomain.network.access global config if not specified",
-                    "length": 255,
-                    "name": "subdomainaccess",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the beginning IPv6 address in the IPv6 network range",
-                    "length": 255,
-                    "name": "startipv6",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional project for the SSH key",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject,updateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Access control type; supported values are account and domain. In 3.0 all shared networks should have aclType=Domain, and all isolated networks - Account. Account means that only the account owner can use the network, domain - all accounts in the domain can use the network",
-                    "length": 255,
-                    "name": "acltype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network ID the network belongs to",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the VPC network belongs to",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "restartVPC,listVPCs,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "account that will own the network",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the network",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "network domain",
-                    "length": 255,
                     "name": "networkdomain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Network ACL ID associated for the network",
-                    "length": 255,
-                    "name": "aclid",
-                    "related": "createNetworkACLList",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-            "response": [
-                {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                    "name": "zonesnetworkspans",
-                    "type": "set"
-                },
-                {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the network belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
-                    "name": "subdomainaccess",
-                    "type": "boolean"
-                },
-                {
                     "description": "the network domain",
-                    "name": "networkdomain",
                     "type": "string"
                 },
                 {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
                     "type": "boolean"
                 },
                 {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Lists all available network offerings.",
-            "isasync": false,
-            "name": "listNetworkOfferings",
-            "params": [
-                {
-                    "description": "true if need to list only default network offerings. Default value is false",
-                    "length": 255,
-                    "name": "isdefault",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list network offerings by guest type: shared or isolated",
-                    "length": 255,
-                    "name": "guestiptype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the network offering can be used only for network creation inside the VPC",
-                    "length": 255,
-                    "name": "forvpc",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if need to list only network offerings which support specifying ip ranges",
-                    "length": 255,
-                    "name": "specifyipranges",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if offering has tags specified",
-                    "length": 255,
-                    "name": "istagged",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the network. Pass this in if you want to see the available network offering that a network can be changed to.",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list network offerings supporting certain services",
-                    "length": 255,
-                    "name": "supportedservices",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "list by traffic type",
-                    "length": 255,
-                    "name": "traffictype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list network offerings available for network creation in specific zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "true if need to list only netwok offerings where source NAT is supported, false otherwise",
-                    "length": 255,
-                    "name": "sourcenatsupported",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list network offerings by display text",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the availability of network offering. Default value is required",
-                    "length": 255,
-                    "name": "availability",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list network offerings by name",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
+                    "description": "the name of the account",
                     "type": "string"
                 },
                 {
-                    "description": "list network offerings by ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listNetworkOfferings",
-                    "required": false,
-                    "type": "uuid"
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
                 },
                 {
-                    "description": "list network offerings by tags",
-                    "length": 4096,
-                    "name": "tags",
-                    "required": false,
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "list network offerings by state",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the tags for the network offering.",
-                    "length": 255,
-                    "name": "specifyvlan",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "true if network offering can be used by VPC networks only",
-                    "name": "forvpc",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
-                    "name": "egressdefaultpolicy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network offering supports vlans, false otherwise",
-                    "name": "specifyvlan",
-                    "type": "boolean"
-                },
-                {
-                    "description": "guest type of the network offering, can be Shared or Isolated",
-                    "name": "guestiptype",
-                    "type": "string"
-                },
-                {
-                    "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the network offering",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the tags for the network offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "availability of the network offering",
-                    "name": "availability",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of supported services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "data transfer rate in megabits per second allowed.",
-                    "name": "networkrate",
-                    "type": "integer"
-                },
-                {
-                    "description": "the date this network offering was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the ID of the service offering used by virtual router provider",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering supports persistent networks, false otherwise",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the network offering",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "additional key/value details tied with network offering",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "state of the network offering. Can be Disabled/Enabled/Inactive",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "conservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "maximum number of concurrents connections to be handled by lb",
-                    "name": "maxconnections",
-                    "type": "integer"
-                },
-                {
-                    "description": "an alternate display text of the network offering.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering supports network that span multiple zones",
-                    "name": "supportsstrechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network offering is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Lists dedicated pods.",
-            "isasync": false,
-            "name": "listDedicatedPods",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the pod",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list dedicated pods by affinity group",
-                    "length": 255,
-                    "name": "affinitygroupid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the account associated with the pod. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the pod",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the Name of the Pod",
-                    "name": "podname",
+                    "description": "id of the Domain the account belongs too",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the Pod",
-                    "name": "podid",
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the Dedication Affinity Group ID of the pod",
-                    "name": "affinitygroupid",
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the Account Id to which the Pod is dedicated",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID to which the Pod is dedicated",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the dedicated resource",
-                    "name": "id",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists VPCs",
-            "isasync": false,
-            "name": "listVPCs",
-            "params": [
-                {
-                    "description": "list VPC supporting certain services",
-                    "length": 255,
-                    "name": "supportedservices",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject,updateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list VPCs by restartRequired option",
-                    "length": 255,
-                    "name": "restartrequired",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list by ID of the VPC offering",
-                    "length": 255,
-                    "name": "vpcofferingid",
-                    "related": "updateVPCOffering",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "List by display text of the VPC",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list VPC by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "restartVPC,listVPCs,updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list by zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list VPCs by state",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
                     "type": "integer"
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list by cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR",
-                    "length": 255,
-                    "name": "cidr",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list by name of the VPC",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "restartVPC,updateVPC,listVPCs,createVPC",
-            "response": [
-                {
-                    "description": "the project name of the VPC",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the VPC",
                     "name": "id",
+                    "description": "the id of the account",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the owner",
                     "name": "domain",
+                    "description": "name of the Domain the account belongs too",
                     "type": "string"
                 },
                 {
-                    "description": "is vpc for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of networks belongign to the VPC",
-                    "name": "network",
-                    "response": [
-                        {
-                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                            "name": "networkcidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "related to what other network configuration",
-                            "name": "related",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the zone the network belongs to",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the physical network id",
-                            "name": "physicalnetworkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "name of the network offering the network is created from",
-                            "name": "networkofferingname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the network",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "true if network offering is ip conserve mode enabled",
-                            "name": "networkofferingconservemode",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                            "name": "reservediprange",
-                            "type": "string"
-                        },
-                        {
-                            "description": "state of the network",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "network offering id the network is created from",
-                            "name": "networkofferingid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network supports specifying ip ranges, false otherwise",
-                            "name": "specifyipranges",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                            "name": "vlan",
-                            "type": "string"
-                        },
-                        {
-                            "description": "an optional field, whether to the display the network to the end user or not.",
-                            "name": "displaynetwork",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                            "name": "zonesnetworkspans",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the traffic type of the network",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the second DNS for the network",
-                            "name": "dns2",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true network requires restart",
-                            "name": "restartrequired",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "availability of the network offering the network is created from",
-                            "name": "networkofferingavailability",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network is system, false otherwise",
-                            "name": "issystem",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the network's netmask",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the ipaddress",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "list networks available for vm deployment",
-                            "name": "canusefordeploy",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the project name of the address",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the first DNS for the network",
-                            "name": "dns1",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network domain",
-                            "name": "networkdomain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "zone id of the network",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "display text of the network offering the network is created from",
-                            "name": "networkofferingdisplaytext",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the network owner",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Broadcast domain type of the network",
-                            "name": "broadcastdomaintype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's gateway",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                            "name": "cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the network",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the displaytext of the network",
-                            "name": "displaytext",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain id of the network owner",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with network",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the owner of the network",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "ACL Id associated with the VPC network",
-                            "name": "aclid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of services",
-                            "name": "service",
-                            "response": [
-                                {
-                                    "description": "the service provider name",
-                                    "name": "provider",
-                                    "response": [
-                                        {
-                                            "description": "the destination physical network",
-                                            "name": "destinationphysicalnetworkid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "services for this provider",
-                                            "name": "servicelist",
-                                            "type": "list"
-                                        },
-                                        {
-                                            "description": "state of the network provider",
-                                            "name": "state",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "true if individual services can be enabled/disabled",
-                                            "name": "canenableindividualservice",
-                                            "type": "boolean"
-                                        },
-                                        {
-                                            "description": "uuid of the network provider",
-                                            "name": "id",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the provider name",
-                                            "name": "name",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the physical network this belongs to",
-                                            "name": "physicalnetworkid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the service name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of capabilities",
-                                    "name": "capability",
-                                    "response": [
-                                        {
-                                            "description": "the capability name",
-                                            "name": "name",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the capability value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "can this service capability value can be choosable while creatine network offerings",
-                                            "name": "canchooseservicecapability",
-                                            "type": "boolean"
-                                        }
-                                    ],
-                                    "type": "list"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "list networks that are persistent",
-                            "name": "ispersistent",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "true if users from subdomains can access the domain level network",
-                            "name": "subdomainaccess",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "VPC the network belongs to",
-                            "name": "vpcid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the network",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network can span multiple zones",
-                            "name": "strechedl2subnet",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "acl type - access type to the network",
-                            "name": "acltype",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the network domain of the VPC",
-                    "name": "networkdomain",
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with the project",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the date this VPC was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "zone id of the vpc",
-                    "name": "zoneid",
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
                     "type": "string"
-                },
-                {
-                    "description": "the project id of the VPC",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the VPC belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr the VPC",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the VPC owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "vpc offering id the VPC is created from",
-                    "name": "vpcofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "if this VPC has redundant router",
-                    "name": "redundantvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
-                    "name": "distributedvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the VPC. Can be Inactive/Enabled",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of supported services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the owner of the VPC",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the VPC.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if VPC is region level",
-                    "name": "regionlevelvpc",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the VPC",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true VPC requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Attempts Migration of a VM with its volumes to a different host",
+            "name": "revertToVMSnapshot",
+            "description": "Revert VM from a vmsnapshot.",
+            "since": "4.2.0",
             "isasync": true,
-            "name": "migrateVirtualMachineWithVolume",
+            "related": "removeNicFromVirtualMachine,deployVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "the ID of the virtual machine",
+                    "name": "vmsnapshotid",
+                    "description": "The ID of the vm snapshot",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,migrateVirtualMachineWithVolume,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
                     "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Storage to pool mapping. This parameter specifies the mapping between a volume and a pool where you want to migrate that volume. Format of this parameter: migrateto[volume-index].volume=<uuid>&migrateto[volume-index].pool=<uuid>Where, [volume-index] indicates the index to identify the volume that you want to migrate, volume=<uuid> indicates the UUID of the volume that you want to migrate, and pool=<uuid> indicates the UUID of the pool where you want to migrate the volume. Example: migrateto[0].volume=<71f43cd6-69b0-4d3b-9fbc-67f50963d60b>&migrateto[0].pool=<a382f181-3d2b-4413-b92d-b8931befa7e1>&migrateto[1].volume=<88de0173-55c0-4c1c-a269-83d0279eeedf>&migrateto[1].pool=<95d6e97c-6766-4d67-9a30-c449c15011d1>&migrateto[2].volume=<1b331390-59f2-4796-9993-bf11c6e76225>&migrateto[2].pool=<41fdb564-9d3b-447d-88ed-7628f7640cbc>",
-                    "length": 255,
-                    "name": "migrateto",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "Destination Host ID to migrate VM to.",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost,addHost",
-                    "required": true,
-                    "type": "uuid"
+                    "related": "listVMSnapshot,createVMSnapshot"
                 }
             ],
-            "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
                     "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
                             "name": "domainid",
+                            "description": "the domain ID of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                }
-                            ],
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
                             "type": "set"
                         },
                         {
-                            "description": "the ID of the security group",
-                            "name": "id",
+                            "name": "description",
+                            "description": "the description of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the security group",
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
                             "name": "name",
+                            "description": "the name of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the incoming network traffic on the vm",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
                     "name": "created",
+                    "description": "the date when this virtual machine was created",
                     "type": "date"
                 },
                 {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
                     "name": "keypair",
+                    "description": "ssh key-pair",
                     "type": "string"
                 },
                 {
-                    "description": "the group ID of the virtual machine",
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
                     "name": "groupid",
+                    "description": "the group ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the list of nics associated with vm",
                     "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the name of the corresponding network",
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
                             "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
                             "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
                             "type": "list"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
                         }
-                    ],
+                    ]
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listHostTags",
+            "description": "Lists host tags",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "hostid",
+                    "description": "the host ID of the host tag",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the host tag",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host tag",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addGuestOs",
+            "description": "Add a new guest OS type",
+            "since": "4.4.0",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "oscategoryid",
+                    "description": "ID of Guest OS category",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listOsCategories"
+                },
+                {
+                    "name": "details",
+                    "description": "Map of (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "name",
+                    "description": "Optional name for Guest OS",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "osdisplayname",
+                    "description": "Unique display name for Guest OS",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the OS type",
+                    "type": "string"
+                },
+                {
+                    "name": "oscategoryid",
+                    "description": "the ID of the OS category",
+                    "type": "string"
+                },
+                {
+                    "name": "isuserdefined",
+                    "description": "is the guest OS user defined",
+                    "type": "boolean"
+                },
+                {
+                    "name": "description",
+                    "description": "the name/description of the OS type",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addAnnotation",
+            "description": "add an annotation.",
+            "since": "4.11",
+            "isasync": false,
+            "related": "removeAnnotation",
+            "params": [
+                {
+                    "name": "annotation",
+                    "description": "the annotation text",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "entityid",
+                    "description": "the id of the entity to annotate",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "entitytype",
+                    "description": "the entity type (only HOST is allowed atm)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "created",
+                    "description": "the creation timestamp for this annotation",
+                    "type": "date"
+                },
+                {
+                    "name": "removed",
+                    "description": "the removal timestamp for this annotation",
+                    "type": "date"
+                },
+                {
+                    "name": "userid",
+                    "description": "The (uu)id of the user that entered the annotation",
+                    "type": "string"
+                },
+                {
+                    "name": "entitytype",
+                    "description": "the type of the annotated entity",
+                    "type": "string"
+                },
+                {
+                    "name": "entityid",
+                    "description": "the (uu)id of the entitiy to which this annotation pertains",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the (uu)id of the annotation",
+                    "type": "string"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the contents of the annotation",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "removeGuestOsMapping",
+            "description": "Removes a Guest OS Mapping.",
+            "since": "4.4.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "ID of the guest OS mapping",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "registerIso",
+            "description": "Registers an existing ISO into the CloudStack Cloud.",
+            "isasync": false,
+            "related": "listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates",
+            "params": [
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the ISO. This is usually used for display purposes.",
+                    "type": "string",
+                    "length": 4096,
+                    "required": true
+                },
+                {
+                    "name": "url",
+                    "description": "the URL to where the ISO is currently being hosted",
+                    "type": "string",
+                    "length": 2048,
+                    "required": true
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type that best represents the OS of this ISO. If the ISO is bootable this parameter needs to be passed",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone you wish to register the ISO to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if you want to register the ISO to be publicly available to all users, false otherwise.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if you want this ISO to be featured",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account name. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the ISO or its derivatives are extractable; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "directdownload",
+                    "description": "true if ISO should bypass Secondary Storage and be downloaded to Primary Storage on deployment",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if this ISO is bootable. If not passed explicitly its assumed to be true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the ISO",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if ISO contains XS/VMWare tools inorder to support dynamic scaling of VM CPU/memory",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "imagestoreuuid",
+                    "description": "Image store UUID",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "checksum",
+                    "description": "the checksum value of this ISO. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{<algorithm>}\", not including the double quotes. In this <algorithm> is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "Register ISO for the project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,updateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "additional key/value details tied with template",
+                    "type": "map"
+                },
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
+                    "type": "boolean"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
                     "type": "set"
                 },
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Adds a network device of one of the following types: ExternalDhcp, ExternalFirewall, ExternalLoadBalancer, PxeServer",
-            "isasync": false,
-            "name": "addNetworkDevice",
-            "params": [
-                {
-                    "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall",
-                    "length": 255,
-                    "name": "networkdevicetype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "parameters for network device",
-                    "length": 255,
-                    "name": "networkdeviceparameterlist",
-                    "required": false,
-                    "type": "map"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the ID of the network device",
-                    "name": "id",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Updates a user account",
-            "isasync": false,
-            "name": "updateUser",
-            "params": [
-                {
-                    "description": "The secret key for the user. Must be specified with userSecretKey",
-                    "length": 255,
-                    "name": "usersecretkey",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "email",
-                    "length": 255,
-                    "name": "email",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "last name",
-                    "length": 255,
-                    "name": "lastname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Clear text password (default hashed to SHA256SALT). If you wish to use any other hasing algorithm, you would need to write a custom authentication adapter. Can't be passed when command is executed via integration.api.port",
-                    "length": 255,
-                    "name": "password",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
-                    "length": 255,
-                    "name": "timezone",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "first name",
-                    "length": 255,
-                    "name": "firstname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Unique username",
-                    "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The API key for the user. Must be specified with userSecretKey",
-                    "length": 255,
-                    "name": "userapikey",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "User uuid",
-                    "length": 255,
-                    "name": "id",
-                    "related": "disableUser,enableUser,getUser,listUsers,updateUser,createUser",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "disableUser,enableUser,getUser,listUsers,createUser",
-            "response": [
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the timezone user was created in",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the api key of the user",
-                    "name": "apikey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the user",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the user name",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the user email address",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the user",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the user state",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the boolean value representing if the updating target is in caller's child domain",
-                    "name": "iscallerchilddomain",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if user is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the type of the role",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the user",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the secret key of the user",
-                    "name": "secretkey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user firstname",
-                    "name": "firstname",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the user account was created",
                     "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "the account ID of the user",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account type of the user",
-                    "name": "accounttype",
-                    "type": "short"
-                }
-            ]
-        },
-        {
-            "description": "Restarts a VPC",
-            "isasync": true,
-            "name": "restartVPC",
-            "params": [
-                {
-                    "description": "the id of the VPC",
-                    "length": 255,
-                    "name": "id",
-                    "related": "restartVPC,updateVPC,listVPCs,createVPC",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If cleanup old network elements",
-                    "length": 255,
-                    "name": "cleanup",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Turn a single VPC into a redundant one.",
-                    "length": 255,
-                    "name": "makeredundant",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "updateVPC,listVPCs,createVPC",
-            "response": [
-                {
-                    "description": "the id of the VPC",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "vpc offering id the VPC is created from",
-                    "name": "vpcofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of supported services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the network domain of the VPC",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "is vpc for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date this VPC was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the list of networks belongign to the VPC",
-                    "name": "network",
-                    "response": [
-                        {
-                            "description": "the domain id of the network owner",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "network offering id the network is created from",
-                            "name": "networkofferingid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of services",
-                            "name": "service",
-                            "response": [
-                                {
-                                    "description": "the list of capabilities",
-                                    "name": "capability",
-                                    "response": [
-                                        {
-                                            "description": "the capability value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "can this service capability value can be choosable while creatine network offerings",
-                                            "name": "canchooseservicecapability",
-                                            "type": "boolean"
-                                        },
-                                        {
-                                            "description": "the capability name",
-                                            "name": "name",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the service provider name",
-                                    "name": "provider",
-                                    "response": [
-                                        {
-                                            "description": "the destination physical network",
-                                            "name": "destinationphysicalnetworkid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "state of the network provider",
-                                            "name": "state",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "true if individual services can be enabled/disabled",
-                                            "name": "canenableindividualservice",
-                                            "type": "boolean"
-                                        },
-                                        {
-                                            "description": "uuid of the network provider",
-                                            "name": "id",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the physical network this belongs to",
-                                            "name": "physicalnetworkid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "services for this provider",
-                                            "name": "servicelist",
-                                            "type": "list"
-                                        },
-                                        {
-                                            "description": "the provider name",
-                                            "name": "name",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the service name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the network's gateway",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the network owner",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the displaytext of the network",
-                            "name": "displaytext",
-                            "type": "string"
-                        },
-                        {
-                            "description": "name of the network offering the network is created from",
-                            "name": "networkofferingname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "acl type - access type to the network",
-                            "name": "acltype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true network requires restart",
-                            "name": "restartrequired",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                            "name": "reservediprange",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the second DNS for the network",
-                            "name": "dns2",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the owner of the network",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network offering is ip conserve mode enabled",
-                            "name": "networkofferingconservemode",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the physical network id",
-                            "name": "physicalnetworkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network's netmask",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "list networks available for vm deployment",
-                            "name": "canusefordeploy",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the project name of the address",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "state of the network",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the first DNS for the network",
-                            "name": "dns1",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if users from subdomains can access the domain level network",
-                            "name": "subdomainaccess",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "true if network supports specifying ip ranges, false otherwise",
-                            "name": "specifyipranges",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the id of the network",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                            "name": "networkcidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                            "name": "zonesnetworkspans",
-                            "type": "set"
-                        },
-                        {
-                            "description": "display text of the network offering the network is created from",
-                            "name": "networkofferingdisplaytext",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the network domain",
-                            "name": "networkdomain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network can span multiple zones",
-                            "name": "strechedl2subnet",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Broadcast domain type of the network",
-                            "name": "broadcastdomaintype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "ACL Id associated with the VPC network",
-                            "name": "aclid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "an optional field, whether to the display the network to the end user or not.",
-                            "name": "displaynetwork",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the name of the zone the network belongs to",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "availability of the network offering the network is created from",
-                            "name": "networkofferingavailability",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the network",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the network",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                            "name": "vlan",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if network is system, false otherwise",
-                            "name": "issystem",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "list networks that are persistent",
-                            "name": "ispersistent",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the list of resource tags associated with network",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "zone id of the network",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the network",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "related to what other network configuration",
-                            "name": "related",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the ipaddress",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "VPC the network belongs to",
-                            "name": "vpcid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                            "name": "cidr",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "an alternate display text of the VPC.",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the VPC",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
-                    "name": "distributedvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the VPC. Can be Inactive/Enabled",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the VPC",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr the VPC",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the VPC belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the VPC",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the VPC owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if VPC is region level",
-                    "name": "regionlevelvpc",
-                    "type": "boolean"
-                },
-                {
-                    "description": "if this VPC has redundant router",
-                    "name": "redundantvpcrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true VPC requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "zone id of the vpc",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the VPC",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the project",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                }
-            ]
-        },
-        {
-            "description": "Removes a certificate from a load balancer rule",
-            "isasync": true,
-            "name": "removeCertFromLoadBalancer",
-            "params": [
-                {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Adds a new host.",
-            "isasync": false,
-            "name": "addHost",
-            "params": [
-                {
-                    "description": "the Zone ID for the host",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "hypervisor type of the host",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster ID for the host",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Allocation state of this Host for allocation of new resources",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the username for the host",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the host URL",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "list of tags to be added to the host",
-                    "length": 255,
-                    "name": "hosttags",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the cluster name for the host",
-                    "length": 255,
-                    "name": "clustername",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the host",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the password for the host",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "addBaremetalHost,reconnectHost",
-            "response": [
-                {
-                    "description": "the host out-of-band management information",
-                    "name": "outofbandmanagement",
-                    "type": "outofbandmanagementresponse"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
-                    "type": "date"
-                },
-                {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the state of the host",
-                    "name": "state",
-                    "type": "status"
-                },
-                {
-                    "description": "the amount of the host's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "events available for the host",
-                    "name": "events",
-                    "type": "string"
-                },
-                {
-                    "description": "the host type",
-                    "name": "type",
-                    "type": "type"
-                },
-                {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the host's memory currently used",
-                    "name": "memoryused",
-                    "type": "long"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
-                    "type": "long"
-                },
-                {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "GPU cards present in the host",
-                    "name": "gpugroup",
-                    "response": [
-                        {
-                            "description": "GPU cards present in the host",
-                            "name": "gpugroupname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of enabled vGPUs",
-                            "name": "vgpu",
-                            "response": [
-                                {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
-                                    "name": "remainingcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
-                                    "name": "maxcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum Y resolution per display",
-                                    "name": "maxresolutiony",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Video RAM for this vGPU type",
-                                    "name": "videoram",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
-                                    "name": "maxvgpuperpgpu",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Model Name of vGPU",
-                                    "name": "vgputype",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Attaches a disk volume to a virtual machine.",
-            "isasync": true,
-            "name": "attachVolume",
-            "params": [
-                {
-                    "description": "the ID of the device to map the volume to within the guest OS. If no deviceId is passed in, the next available deviceId will be chosen. Possible values for a Linux OS are:* 0 - /dev/xvda* 1 - /dev/xvdb* 2 - /dev/xvdc* 4 - /dev/xvde* 5 - /dev/xvdf* 6 - /dev/xvdg* 7 - /dev/xvdh* 8 - /dev/xvdi* 9 - /dev/xvdj",
-                    "length": 255,
-                    "name": "deviceid",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "    the ID of the virtual machine",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the disk volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "attachVolume,updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-            "response": [
-                {
-                    "description": "the state of the disk volume",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the disk offering",
-                    "name": "diskofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the disk volume was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "id of the virtual machine",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the disk offering",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
-                    "type": "date"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
-                    "type": "string"
-                },
-                {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
-                    "name": "displayvolume",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the status of the volume",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the service offering for root disk",
-                    "name": "serviceofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the boolean state of whether the volume is destroyed or not",
-                    "name": "destroyed",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
-                    "type": "string"
-                },
-                {
-                    "description": "the path of the volume",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "need quiesce vm or not when taking snapshot",
-                    "name": "quiescevm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "adds a baremetal dhcp server",
-            "isasync": true,
-            "name": "addBaremetalDhcp",
-            "params": [
-                {
-                    "description": "Credentials to reach external dhcp device",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to reach external dhcp device",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Type of dhcp device",
-                    "length": 255,
-                    "name": "dhcpservertype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "URL of the external dhcp appliance.",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "listBaremetalDhcp",
-            "response": [
-                {
-                    "description": "url",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of ",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this external dhcp device belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "dhcpservertype",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Adds Traffic Monitor Host for Direct Network Usage",
-            "isasync": false,
-            "name": "addTrafficMonitor",
-            "params": [
-                {
-                    "description": "Traffic going into the listed zones will not be metered",
-                    "length": 255,
-                    "name": "excludezones",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Traffic going into the listed zones will be metered",
-                    "length": 255,
-                    "name": "includezones",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "URL of the traffic monitor Host",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Zone in which to add the external firewall appliance.",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the external firewall",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists load balancers",
-            "isasync": false,
-            "name": "listLoadBalancers",
-            "params": [
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject,updateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the load balancer",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the load balancer",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the scheme of the load balancer. Supported value is internal in the current release",
-                    "length": 255,
-                    "name": "scheme",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the source IP address of the load balancer",
-                    "length": 255,
-                    "name": "sourceipaddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the network ID of the load balancer",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the network ID of the source IP address",
-                    "length": 255,
-                    "name": "sourceipaddressnetworkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "createLoadBalancer",
-            "response": [
-                {
-                    "description": "Load Balancer source ip network id",
-                    "name": "sourceipaddressnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                    "name": "algorithm",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Load Balancer",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of instances associated with the Load Balancer",
-                    "name": "loadbalancerinstance",
-                    "response": [
-                        {
-                            "description": "the instance ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the instance",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the instance",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the instance",
-                            "name": "name",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the Load Balancer ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the Load Balancer",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the Load Balancer",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account of the Load Balancer",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the Load Balancer",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the Load Balancer",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the Load Balancer",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "Load Balancer network id",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the Load Balancer",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "Load Balancer source ip",
-                    "name": "sourceipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of rules associated with the Load Balancer",
-                    "name": "loadbalancerrule",
-                    "response": [
-                        {
-                            "description": "instance port of the load balancer rule",
-                            "name": "instanceport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the state of the load balancer rule",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "source port of the load balancer rule",
-                            "name": "sourceport",
-                            "type": "integer"
-                        }
-                    ],
-                    "type": "list"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Updates a project",
-            "isasync": true,
-            "name": "updateProject",
-            "params": [
-                {
-                    "description": "id of the project to be modified",
-                    "length": 255,
-                    "name": "id",
-                    "related": "suspendProject,activateProject,updateProject",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "new Admin account for the project",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the project",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "suspendProject,activateProject",
-            "response": [
-                {
-                    "description": "the total number of networks the project can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the project",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the project can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the project can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this project",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses this project can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the project",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by project",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume being used by this project",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the displaytext of the project",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by project",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots stored by this project",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this project",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this project",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this project",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of cpu cores owned by project",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume which can be used by this project",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this project",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the project can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this project to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by project",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the project can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this project",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this project",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this project to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this project",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this project",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by project",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots available for this project",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this project",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the account name of the project's owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name where the project belongs to",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with vm",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the total memory (in MB) owned by project",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this project",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this project",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the project",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the project can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this project",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this project",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which can be created by this project",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this project",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id the project belongs to",
-                    "name": "domainid",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Deletes a load balancer stickiness policy.",
-            "isasync": true,
-            "name": "deleteLBStickinessPolicy",
-            "params": [
-                {
-                    "description": "the ID of the LB stickiness policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listLBStickinessPolicies,createLBStickinessPolicy",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Lists user accounts",
-            "isasync": false,
-            "name": "listUsers",
-            "params": [
-                {
-                    "description": "List users by account type. Valid types include admin, domain-admin, read-only-admin, or user.",
-                    "length": 255,
-                    "name": "accounttype",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "List users by state of the user account.",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List user by the username",
-                    "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List user by ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "disableUser,enableUser,getUser,listUsers,createUser",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "disableUser,enableUser,getUser,createUser",
-            "response": [
-                {
-                    "description": "the boolean value representing if the updating target is in caller's child domain",
-                    "name": "iscallerchilddomain",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the user name",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the user",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the user lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "the timezone user was created in",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the user ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the api key of the user",
-                    "name": "apikey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user email address",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "the account type of the user",
-                    "name": "accounttype",
-                    "type": "short"
-                },
-                {
-                    "description": "the user state",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the user account was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the account name of the user",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the account ID of the user",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the user",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the secret key of the user",
-                    "name": "secretkey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user firstname",
-                    "name": "firstname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if user is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user",
-            "isasync": false,
-            "name": "registerUserKeys",
-            "params": [
-                {
-                    "description": "User id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "disableUser,enableUser,getUser,createUser",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the api key of the registered user",
-                    "name": "apikey",
-                    "type": "string"
-                },
-                {
-                    "description": "the secret key of the registered user",
-                    "name": "secretkey",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists site to site vpn connection gateways",
-            "isasync": false,
-            "name": "listVpnConnections",
-            "params": [
-                {
-                    "description": "id of vpc",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "id of the vpn connection",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createVpnConnection,listVpnConnections",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "createVpnConnection",
-            "response": [
-                {
-                    "description": "guest cidr list of the customer gateway",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "passive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "IKE policy of the customer gateway",
-                    "name": "ikepolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "public ip address id of the customer gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the customer gateway ID",
-                    "name": "s2scustomergatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of ESP SA of customer gateway",
-                    "name": "esplifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "ESP policy of the customer gateway",
-                    "name": "esppolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "IPsec Preshared-Key of the customer gateway",
-                    "name": "ipsecpsk",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "if DPD is enabled for customer gateway",
-                    "name": "dpd",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the connection ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
-                    "name": "forceencap",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "is connection for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Lifetime of IKE SA of customer gateway",
-                    "name": "ikelifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "s2svpngatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                }
-            ]
-        },
-        {
-            "description": "Lists resource limits.",
-            "isasync": false,
-            "name": "listResourceLimits",
-            "params": [
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Type of resource. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses an account can own. 2 - Volume. Number of disk volumes an account can own. 3 - Snapshot. Number of snapshots an account can own. 4 - Template. Number of templates an account can register/create. 5 - Project. Number of projects an account can own. 6 - Network. Number of networks an account can own. 7 - VPC. Number of VPC an account can own. 8 - CPU. Number of CPU an account can allocate for his resources. 9 - Memory. Amount of RAM an account can allocate for his resources. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ",
-                    "length": 255,
-                    "name": "resourcetype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Lists resource limits by ID.",
-                    "length": 255,
-                    "name": "id",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the project id of the resource limit",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the resource limit",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the maximum number of the resource. A -1 means the resource currently has no limit.",
-                    "name": "max",
-                    "type": "long"
-                },
-                {
-                    "description": "the project name of the resource limit",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the resource limit",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the resource limit",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.",
-                    "name": "resourcetype",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Disables a user account",
-            "isasync": true,
-            "name": "disableUser",
-            "params": [
-                {
-                    "description": "Disables user by user ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "disableUser,enableUser,getUser,createUser",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "enableUser,getUser,createUser",
-            "response": [
-                {
-                    "description": "the user email address",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the account ID of the user",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the secret key of the user",
-                    "name": "secretkey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user firstname",
-                    "name": "firstname",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the user",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the user state",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the user account was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the api key of the user",
-                    "name": "apikey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user name",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the user",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "the timezone user was created in",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the user ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the boolean value representing if the updating target is in caller's child domain",
-                    "name": "iscallerchilddomain",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if user is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account name of the user",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the account type of the user",
-                    "name": "accounttype",
-                    "type": "short"
-                }
-            ]
-        },
-        {
-            "description": "Lists all available ISO files.",
-            "isasync": false,
-            "name": "listIsos",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this ISO is ready to be deployed",
-                    "length": 255,
-                    "name": "isready",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "length": 255,
-                    "name": "bootable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the hypervisor for which to restrict the search",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).",
-                    "length": 255,
-                    "name": "isofilter",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "show removed ISOs as well",
-                    "length": 255,
-                    "name": "showremoved",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list all ISOs by name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list ISO by ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "registerTemplate,listIsos,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if the ISO is publicly available to all users, false otherwise.",
-                    "length": 255,
-                    "name": "ispublic",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "registerTemplate,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-            "response": [
-                {
-                    "description": "the template display text",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the template name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "checksum of the template",
-                    "name": "checksum",
-                    "type": "string"
-                },
-                {
                     "description": "the date this template was created",
-                    "name": "created",
                     "type": "date"
                 },
                 {
-                    "description": "the date this template was removed",
-                    "name": "removed",
-                    "type": "date"
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
                 },
                 {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the size of the template",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the format of the template.",
                     "name": "format",
+                    "description": "the format of the template.",
                     "type": "imageformat"
                 },
                 {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the status of the template",
-                    "name": "status",
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the OS type for this template.",
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "additional key/value details tied with template",
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetype",
+                    "description": "the type of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the template display text",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "the size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the template name",
+                    "type": "string"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date this template was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deployNetscalerVpx",
+            "description": "Creates new NS Vpx",
+            "isasync": true,
+            "related": "registerNetscalerControlCenter,addNetscalerLoadBalancer,listNetscalerLoadBalancers",
+            "params": [
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering for the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "networkid",
+                    "description": "The network this ip address should be associated to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "availability zone for the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                }
+            ],
+            "response": [
+                {
+                    "name": "lbdevicecapacity",
+                    "description": "device capacity",
+                    "type": "long"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "lbdeviceid",
+                    "description": "device id of the netscaler load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this netscaler device belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbproviderprivateip",
+                    "description": "private IP of the NetScaler representing GSLB site",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbproviderpublicip",
+                    "description": "public IP of the NetScaler representing GSLB site",
+                    "type": "string"
+                },
+                {
+                    "name": "isexclusivegslbprovider",
+                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "privateinterface",
+                    "description": "the private interface of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "lbdevicename",
+                    "description": "device name",
+                    "type": "string"
+                },
+                {
+                    "name": "podids",
+                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
+                    "type": "list"
+                },
+                {
+                    "name": "lbdevicededicated",
+                    "description": "true if device is dedicated for an account",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gslbprovider",
+                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "lbdevicestate",
+                    "description": "device state",
+                    "type": "string"
+                },
+                {
+                    "name": "publicinterface",
+                    "description": "the public interface of the load balancer",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listElastistorVolume",
+            "description": "Lists the volumes of elastistor",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the account",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "compression",
+                    "description": "compression",
+                    "type": "string"
+                },
+                {
+                    "name": "graceallowed",
+                    "description": "graceallowed",
+                    "type": "string"
+                },
+                {
+                    "name": "deduplication",
+                    "description": "deduplication",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "sync",
+                    "description": "syncronization",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the volume",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deletePortableIpRange",
+            "description": "deletes a range of portable public IP's associated with a region",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "Id of the portable ip range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listNiciraNvpDevices",
+            "description": "Lists Nicira NVP devices",
+            "isasync": false,
+            "related": "addNiciraNvpDevice",
+            "params": [
+                {
+                    "name": "nvpdeviceid",
+                    "description": "nicira nvp device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNiciraNvpDevices,addNiciraNvpDevice"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this Nirica Nvp belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "transportzoneuuid",
+                    "description": "the transport zone Uuid",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "l2gatewayserviceuuid",
+                    "description": "this L2 gateway service Uuid",
+                    "type": "string"
+                },
+                {
+                    "name": "nvpdeviceid",
+                    "description": "device id of the Nicire Nvp",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the controller Ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "l3gatewayserviceuuid",
+                    "description": "this L3 gateway service Uuid",
+                    "type": "string"
+                },
+                {
+                    "name": "niciradevicename",
+                    "description": "device name",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addBaremetalPxeKickStartServer",
+            "description": "add a baremetal pxe server",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "url",
+                    "description": "URL of the external pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "podid",
+                    "description": "Pod Id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "username",
+                    "description": "Credentials to reach external pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "tftpdir",
+                    "description": "Tftp root directory of PXE server",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "pxeservertype",
+                    "description": "type of pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "password",
+                    "description": "Credentials to reach external pxe device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "tftpdir",
+                    "description": "Tftp root directory of PXE server",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listAlerts",
+            "description": "Lists all alerts.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "type",
+                    "description": "list by alert type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the alert",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAlerts"
+                },
+                {
+                    "name": "name",
+                    "description": "list by alert name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3"
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "the name of the alert",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the alert",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "One of the following alert types: MEMORY = 0, CPU = 1, STORAGE = 2, STORAGE_ALLOCATED = 3, PUBLIC_IP = 4, PRIVATE_IP = 5, SECONDARY_STORAGE = 6, HOST = 7, USERVM = 8, DOMAIN_ROUTER = 9, CONSOLE_PROXY = 10, ROUTING = 11: lost connection to default route (to the gateway), STORAGE_MISC = 12, USAGE_SERVER = 13, MANAGMENT_NODE = 14, DOMAIN_ROUTER_MIGRATE = 15, CONSOLE_PROXY_MIGRATE = 16, USERVM_MIGRATE = 17, VLAN = 18, SSVM = 19, USAGE_SERVER_RESULT = 20, STORAGE_DELETE = 21, UPDATE_RESOURCE_COUNT = 22, USAGE_SANITY_RESULT = 23, DIRECT_ATTACHED_PUBLIC_IP = 24, LOCAL_STORAGE = 25, RESOURCE_LIMIT_EXCEEDED = 26, SYNC = 27, UPLOAD_FAILED = 28, OOBM_AUTH_ERROR = 29",
+                    "type": "short"
+                },
+                {
+                    "name": "description",
+                    "description": "description of the alert",
+                    "type": "string"
+                },
+                {
+                    "name": "sent",
+                    "description": "the date and time the alert was sent",
+                    "type": "date"
+                }
+            ]
+        },
+        {
+            "name": "deployVirtualMachine",
+            "description": "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.",
+            "isasync": true,
+            "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "destination Host ID to deploy the VM to - parameter available for root admin only",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "cancelHostMaintenance,addBaremetalHost,reconnectHost,addHost"
+                },
+                {
+                    "name": "datadiskofferinglist",
+                    "description": "datadisk template to disk-offering mapping; an optional parameter used to create additional data disks from datadisk templates; can't be specified with diskOfferingId parameter",
+                    "type": "map",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.11"
+                },
+                {
+                    "name": "ip6address",
+                    "description": "the ipv6 address for default vm's network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering for the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering,listServiceOfferings"
+                },
+                {
                     "name": "details",
+                    "description": "used to specify the custom parameters.",
+                    "type": "map",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3"
+                },
+                {
+                    "name": "group",
+                    "description": "an optional group for the virtual machine",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dhcpoptionsnetworklist",
+                    "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "deploymentplanner",
+                    "description": "Deployment planner to use for vm allocation. Available to ROOT admin only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "projectid",
+                    "description": "Deploy vm for the project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,updateProject,suspendProject"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "macaddress",
+                    "description": "the mac address for default vm's network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which to deploy the virtual machine. The parameter is required and respected only when hypervisor info is not set on the ISO/Template passed to the call",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "availability zone for the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "securitygroupids",
+                    "description": "comma separated list of security groups id that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "createSecurityGroup"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "displayname",
+                    "description": "an optional user generated name for the virtual machine",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "iptonetworklist",
+                    "description": "ip to network mapping. Can't be specified with networkIds parameter. Example: iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].ipv6=fc00:1234:5678::abcd&iptonetworklist[0].networkid=uuid&iptonetworklist[0].mac=aa:bb:cc:dd:ee::ff - requests to use ip 10.10.10.11 in network id=uuid",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keypair",
+                    "description": "name of the ssh key pair used to login to the virtual machine",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the ip address for default vm's network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "affinitygroupids",
+                    "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Mutually exclusive with affinitygroupnames parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "rootdisksize",
+                    "description": "Optional field to resize root disk on deploy. Value is in GB. Only applies to template-based deployments. Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided",
+                    "type": "long",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "securitygroupnames",
+                    "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "createSecurityGroup"
+                },
+                {
+                    "name": "networkids",
+                    "description": "list of network ids used by virtual machine. Can't be specified with ipToNetworkList parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account for the virtual machine. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "host name for the virtual machine",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "size",
+                    "description": "the arbitrary size for the DATADISK volume. Mutually exclusive with diskOfferingId",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering for the virtual machine. If the template is of ISO format, the diskOfferingId is for the root disk volume. Otherwise this parameter is used to indicate the offering for the data disk volume. If the templateId parameter passed is from a Template object, the diskOfferingId refers to a DATA Disk Volume created. If the templateId parameter passed is from an ISO object, the diskOfferingId refers to a ROOT Disk Volume created.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createDiskOffering"
+                },
+                {
+                    "name": "userdata",
+                    "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 2KB of data after base64 encoding. Using HTTP POST(via POST body), you can send up to 32K of data after base64 encoding.",
+                    "type": "string",
+                    "length": 32768,
+                    "required": false
+                },
+                {
+                    "name": "startvm",
+                    "description": "true if start vm after creating; defaulted to true if not specified",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyboard",
+                    "description": "an optional keyboard device type for the virtual machine. valid value can be one of de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk,us",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "affinitygroupnames",
+                    "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine.Mutually exclusive with affinitygroupids parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field, whether to the display the vm to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.2"
+                }
+            ],
+            "response": [
+                {
+
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
                     "type": "map"
                 },
                 {
-                    "description": "the template ID",
-                    "name": "id",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the template",
-                    "name": "projectid",
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
                     "type": "string"
                 },
                 {
-                    "description": "the type of the template",
-                    "name": "templatetype",
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the domain to which the template belongs",
                     "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the template",
                     "name": "project",
+                    "description": "the project name of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the secondary storage host for the template",
                     "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account name to which the template belongs",
-                    "name": "account",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "upgradeRouterTemplate",
+            "description": "Upgrades router to use newer template",
+            "isasync": false,
+            "related": "listNuageVspGlobalDomainTemplate",
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "upgrades all routers within the specified zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "id",
+                    "description": "upgrades router with the specified Id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listRouters,destroyRouter"
+                },
+                {
+                    "name": "domainid",
+                    "description": "upgrades all routers owned by the specified domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "podid",
+                    "description": "upgrades all routers within the specified pod",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "upgrades all routers within the specified cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster"
+                },
+                {
+                    "name": "account",
+                    "description": "upgrades all routers owned by the specified account",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+
+                },
+                {
+
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the current status of the latest async job acting on this object",
+                    "type": "integer"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the UUID of the latest async job acting on this object",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listVlanIpRanges",
+            "description": "Lists all VLAN IP ranges.",
+            "isasync": false,
+            "related": "dedicatePublicIpRange",
+            "params": [
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN. Default is an \"untagged\" VLAN.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "physical network id of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "the account with which the VLAN IP range is associated. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID with which the VLAN IP range is associated.  If used with the account parameter, returns all VLAN IP ranges for that account in the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "true if VLAN is of Virtual type, false if Direct",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "project who will own the VLAN",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listProjectAccounts,activateProject,updateProject,suspendProject"
+                },
+                {
+                    "name": "networkid",
+                    "description": "network id of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listVlanIpRanges,dedicatePublicIpRange"
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain name of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the VLAN IP range",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startip",
+                    "description": "the start ip of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "endip",
+                    "description": "the end ip of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
+                    "type": "string"
+                },
+                {
+                    "name": "endipv6",
+                    "description": "the end ipv6 of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startipv6",
+                    "description": "the start ipv6 of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name for the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "forsystemvms",
+                    "description": "indicates whether VLAN IP range is dedicated to system vms or not",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Migrate current NFS secondary storages to use object store.",
+            "name": "updateZone",
+            "description": "Updates a Zone.",
             "isasync": false,
-            "name": "updateCloudToUseObjectStore",
+            "related": "createZone,listZones,listZones",
             "params": [
                 {
-                    "description": "the URL for the image store",
-                    "length": 255,
-                    "name": "url",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the image store provider name",
-                    "length": 255,
-                    "name": "provider",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the name for the image store",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss",
-                    "length": 255,
                     "name": "details",
-                    "required": false,
-                    "type": "map"
+                    "description": "the details for the Zone",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first DNS for IPv6 network in the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domain",
+                    "description": "Network domain name for the networks in the zone; empty string will update domain with NULL value",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dhcpprovider",
+                    "description": "the dhcp Provider for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the Zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones,updateZone"
+                },
+                {
+                    "name": "dnssearchorder",
+                    "description": "the dns search order list",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "internaldns1",
+                    "description": "the first internal DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ispublic",
+                    "description": "updates a private zone to public if set, but not vice-versa",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "Allocation state of this cluster for allocation of new resources",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "internaldns2",
+                    "description": "the second internal DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second DNS for IPv6 network in the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "guestcidraddress",
+                    "description": "the guest CIDR address for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "localstorageenabled",
+                    "description": "true if local storage offering enabled, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addImageStoreS3,listSwifts,listImageStores",
             "response": [
                 {
-                    "description": "the details of the image store",
+                    "name": "displaytext",
+                    "description": "the display text of the zone",
+                    "type": "string"
+                },
+                {
+                    "name": "internaldns2",
+                    "description": "the second internal DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "guestcidraddress",
+                    "description": "the guest CIDR address for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "zonetoken",
+                    "description": "Zone Token",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "domainname",
+                    "description": "the name of the containing domain, null for public zones",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "Zone description",
+                    "type": "string"
+                },
+                {
+                    "name": "capacity",
+                    "description": "the capacity of the Zone",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the capacity type",
+                            "type": "short"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
+                            "type": "long"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "podname",
+                            "description": "the Pod name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "resourcedetails",
+                    "description": "Meta data associated with the zone (key/value pairs)",
+                    "type": "map"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the Zone",
+                    "type": "string"
+                },
+                {
+
+                },
+                {
+                    "name": "securitygroupsenabled",
+                    "description": "true if security groups support is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dhcpprovider",
+                    "description": "the dhcp Provider for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with zone.",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "name",
+                    "description": "Zone name",
+                    "type": "string"
+                },
+                {
+                    "name": "internaldns1",
+                    "description": "the first internal DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "networktype",
+                    "description": "the network type of the zone; can be Basic or Advanced",
+                    "type": "string"
+                },
+                {
+                    "name": "localstorageenabled",
+                    "description": "true if local storage offering enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "the allocation state of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "Zone id",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "Network domain name for the networks in the zone",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the UUID of the containing domain, null for public zones",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the Zone",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "cancelHostMaintenance",
+            "description": "Cancels host maintenance.",
+            "isasync": true,
+            "related": "addBaremetalHost,reconnectHost,addHost",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "cancelHostMaintenance,addBaremetalHost,reconnectHost,addHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the host",
+                    "type": "status"
+                },
+                {
+                    "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the last annotation set on this host by an admin",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "events",
+                    "description": "events available for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "username",
+                    "description": "the admin that annotated this host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpusockets",
+                    "description": "the number of CPU sockets on the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "capabilities",
+                    "description": "capabilities of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
+                    "type": "string"
+                },
+                {
                     "name": "details",
+                    "description": "Host details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "type"
+                },
+                {
+                    "name": "outofbandmanagement",
+                    "description": "the host out-of-band management information",
+                    "type": "outofbandmanagementresponse"
+                },
+                {
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostha",
+                    "description": "the host HA information information",
+                    "type": "hostharesponse"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
+                    "type": "long"
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "the resource state of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "averageload",
+                    "description": "the cpu average load on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "version",
+                    "description": "the host version",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the host hypervisor",
+                    "type": "hypervisortype"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "lastannotated",
+                    "description": "the last time this host was annotated",
+                    "type": "date"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "oscategoryname",
+                    "description": "the OS category name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
+                    "type": "long"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "managementserverid",
+                    "description": "the management server ID of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor",
+                    "type": "string"
+                },
+                {
+                    "name": "gpugroup",
+                    "description": "GPU cards present in the host",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "gpugroupname",
+                            "description": "GPU cards present in the host",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vgpu",
+                            "description": "the list of enabled vGPUs",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "maxresolutiony",
+                                    "description": "Maximum Y resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxvgpuperpgpu",
+                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutionx",
+                                    "description": "Maximum X resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxcapacity",
+                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "vgputype",
+                                    "description": "Model Name of vGPU",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "remainingcapacity",
+                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "videoram",
+                                    "description": "Video RAM for this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxheads",
+                                    "description": "Maximum displays per user",
+                                    "type": "long"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "listNuageVspDevices",
+            "description": "Lists Nuage VSP devices",
+            "since": "4.5",
+            "isasync": false,
+            "related": "updateNuageVspDevice",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vspdeviceid",
+                    "description": "the Nuage VSP device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNuageVspDevices,updateNuageVspDevice"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "hostname",
+                    "description": "the hostname of the Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "retryinterval",
+                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
+                    "type": "long"
+                },
+                {
+                    "name": "cmsid",
+                    "description": "the CMS ID generated by the Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "nuagedevicename",
+                    "description": "the name of the Nuage VSP device",
+                    "type": "string"
+                },
+                {
+                    "name": "vspdeviceid",
+                    "description": "the device id of the Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the ID of the physical network to which this Nuage VSP belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "retrycount",
+                    "description": "the number of retries on failure to communicate to Nuage VSD",
+                    "type": "int"
+                },
+                {
+                    "name": "provider",
+                    "description": "the service provider name corresponding to this Nuage VSP device",
+                    "type": "string"
+                },
+                {
+                    "name": "apiversion",
+                    "description": "the version of the API to use to communicate to Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "the port to communicate to Nuage VSD",
+                    "type": "int"
+                }
+            ]
+        },
+        {
+            "name": "extractVolume",
+            "description": "Extracts volume",
+            "isasync": true,
+            "related": "extractTemplate",
+            "params": [
+                {
+                    "name": "mode",
+                    "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listVolumes,migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the zone where the volume is located",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones"
+                },
+                {
+                    "name": "url",
+                    "description": "the url to which the volume would be extracted",
+                    "type": "string",
+                    "length": 2048,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the extracted object",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the time and date the object was created",
+                    "type": "date"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone ID the object was extracted from",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the extraction",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the extracted object",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "type of the storage",
+                    "type": "string"
+                },
+                {
+                    "name": "extractMode",
+                    "description": "the mode of extraction - upload or download",
+                    "type": "string"
+                },
+                {
+                    "name": "resultstring",
+                    "description": "",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "zone name the object was extracted from",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded",
+                    "type": "string"
+                },
+                {
+                    "name": "uploadpercentage",
+                    "description": "the percentage of the entity uploaded to the specified location",
+                    "type": "integer"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of extracted object",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the extracted object belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "extractId",
+                    "description": "the upload id of extracted object",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listProjectAccounts",
+            "description": "Lists project's accounts",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "activateProject,updateProject,suspendProject",
+            "params": [
+                {
+                    "name": "role",
+                    "description": "list accounts of the project by role",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "ID of the project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listProjectAccounts,activateProject,updateProject,suspendProject"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list accounts of the project by account name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this project",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the project's owner",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with vm",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name where the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by project",
+                    "type": "float"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "projectaccountname",
+                    "description": "the project account name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this project can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this project",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateAutoScalePolicy",
+            "description": "Updates an existing autoscale policy.",
+            "isasync": true,
+            "related": "listAutoScalePolicies",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the autoscale policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateAutoScalePolicy,listAutoScalePolicies"
+                },
+                {
+                    "name": "duration",
+                    "description": "the duration for which the conditions have to be true before action is taken",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "quiettime",
+                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "conditionids",
+                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "action",
+                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale policy ID",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "conditions",
+                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
+                    "type": "list"
+                },
+                {
+                    "name": "duration",
+                    "description": "the duration for which the conditions have to be true before action is taken",
+                    "type": "integer"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "quiettime",
+                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
+                    "type": "integer"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the autoscale policy",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createDiskOffering",
+            "description": "Creates a disk offering.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "storagetype",
+                    "description": "the storage type of the disk offering. Values are local and shared.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "alternate display text of the disk offering",
+                    "type": "string",
+                    "length": 4096,
+                    "required": true
+                },
+                {
+                    "name": "customized",
+                    "description": "whether disk offering size is custom or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "bytesreadrate",
+                    "description": "bytes read rate of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "tags for the disk offering",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                },
+                {
+                    "name": "iopswriterate",
+                    "description": "io requests write rate of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "disksize",
+                    "description": "size of the disk offering in GB (1GB = 1,073,741,824 bytes)",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "byteswriterate",
+                    "description": "bytes write rate of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "displayoffering",
+                    "description": "an optional field, whether to display the offering to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "iopsreadrate",
+                    "description": "io requests read rate of the disk offering",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "customizediops",
+                    "description": "whether disk offering iops is custom or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the containing domain, null for public offerings",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "disksize",
+                    "description": "the size of the disk offering in GB",
+                    "type": "long"
+                },
+                {
+                    "name": "displayoffering",
+                    "description": "whether to display the offering to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "the max iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "the min iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable.",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name this disk offering belongs to. Ignore this information as it is not currently applicable.",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "the storage type for this disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "unique ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
+                    "type": "integer"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
+                    "type": "string"
+                },
+                {
+                    "name": "iscustomizediops",
+                    "description": "true if disk offering uses custom iops, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this disk offering was created",
+                    "type": "date"
+                },
+                {
+                    "name": "cacheMode",
+                    "description": "the cache mode to use for this disk offering. none, writeback or writethrough",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the disk offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "iscustomized",
+                    "description": "true if disk offering uses custom size, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk offering",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "listVolumes",
+            "description": "Lists all volumes.",
+            "isasync": false,
+            "related": "migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
+            "params": [
+                {
+                    "name": "displayvolume",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,updateProject,suspendProject"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostid",
+                    "description": "list volumes on specified host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addBaremetalHost,reconnectHost,addHost"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the disk volume",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ids",
+                    "description": "the IDs of the volumes, mutually exclusive with id",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.9",
+                    "related": "listVolumes,migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "storageid",
+                    "description": "the ID of the storage pool, available to ROOT admin only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3",
+                    "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "the pod id the disk volume belongs to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listVolumes,migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availability zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "list volumes by disk offering",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4",
+                    "related": ""
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "the type of disk volume",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster id the disk volume belongs to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "created",
+                    "description": "the date the disk volume was created",
+                    "type": "date"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "name of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
+                    "type": "string"
+                },
+                {
+                    "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "name of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "shared or local storage",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "size",
+                    "description": "size of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createLBHealthCheckPolicy",
+            "description": "Creates a load balancer health check policy",
+            "since": "4.2.0",
+            "isasync": true,
+            "related": "listLBHealthCheckPolicies",
+            "params": [
+                {
+                    "name": "responsetimeout",
+                    "description": "Time to wait when receiving a response from the health check (2sec - 60 sec)",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "unhealthythreshold",
+                    "description": "Number of consecutive health check failures before declaring an instance unhealthy",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pingpath",
+                    "description": "HTTP ping path",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "intervaltime",
+                    "description": "Amount of time between health checks (1 sec - 20940 sec)",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "healthythreshold",
+                    "description": "Number of consecutive health check success before declaring an instance healthy",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer health check policy",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "lbruleid",
+                    "description": "the LB rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "healthcheckpolicy",
+                    "description": "the list of healthcheckpolicies",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "pingpath",
+                            "description": "the pingpath  of the healthcheck policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the healthcheck policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "healthcheckinterval",
+                            "description": "Amount of time between health checks",
+                            "type": "int"
+                        },
+                        {
+                            "name": "healthcheckthresshold",
+                            "description": "Number of consecutive health check success before declaring an instance healthy",
+                            "type": "int"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "fordisplay",
+                            "description": "is policy for display to the regular user",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "unhealthcheckthresshold",
+                            "description": "Number of consecutive health check failures before declaring an instance unhealthy.",
+                            "type": "int"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the LB HealthCheck policy ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "responsetime",
+                            "description": "Time to wait when receiving a response from the health check",
+                            "type": "int"
+                        }
+                    ]
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the HealthCheck policy",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the HealthCheck policy belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the HealthCheck policy",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the HealthCheck policy",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "lockUser",
+            "description": "Locks a user account",
+            "isasync": false,
+            "related": "updateUser,listUsers,enableUser,getUser,createUser,disableUser",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "Locks user by user ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateUser,listUsers,enableUser,lockUser,getUser,createUser,disableUser"
+                }
+            ],
+            "response": [
+                {
+                    "name": "usersource",
+                    "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the timezone user was created in",
+                    "type": "string"
+                },
+                {
+                    "name": "firstname",
+                    "description": "the user firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "iscallerchilddomain",
+                    "description": "the boolean value representing if the updating target is in caller's child domain",
+                    "type": "boolean"
+                },
+                {
+                    "name": "lastname",
+                    "description": "the user lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the user ID",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "the account type of the user",
+                    "type": "short"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "apikey",
+                    "description": "the api key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "the user email address",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the user state",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user name",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the user account was created",
+                    "type": "date"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if user is default, false otherwise",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "cloudianIsEnabled",
+            "description": "Checks if the Cloudian Connector is enabled",
+            "since": "4.11.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+
+            ],
+            "response": [
+                {
+                    "name": "url",
+                    "description": "the Cloudian Management Console base URL",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "the Cloudian connector enabled state",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listLBHealthCheckPolicies",
+            "description": "Lists load balancer health check policies.",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the health check policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4",
+                    "related": "listLBHealthCheckPolicies"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the HealthCheck policy",
+                    "type": "string"
+                },
+                {
+                    "name": "healthcheckpolicy",
+                    "description": "the list of healthcheckpolicies",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "fordisplay",
+                            "description": "is policy for display to the regular user",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "healthcheckinterval",
+                            "description": "Amount of time between health checks",
+                            "type": "int"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the healthcheck policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "responsetime",
+                            "description": "Time to wait when receiving a response from the health check",
+                            "type": "int"
+                        },
+                        {
+                            "name": "unhealthcheckthresshold",
+                            "description": "Number of consecutive health check failures before declaring an instance unhealthy.",
+                            "type": "int"
+                        },
+                        {
+                            "name": "pingpath",
+                            "description": "the pingpath  of the healthcheck policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "healthcheckthresshold",
+                            "description": "Number of consecutive health check success before declaring an instance healthy",
+                            "type": "int"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the LB HealthCheck policy ID",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the HealthCheck policy belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the HealthCheck policy",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the HealthCheck policy",
+                    "type": "string"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the LB rule ID",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createNetwork",
+            "description": "Creates a network",
+            "isasync": false,
+            "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,migrateNetwork",
+            "params": [
+                {
+                    "name": "vpcid",
+                    "description": "the VPC network belongs to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "subdomainaccess",
+                    "description": "Defines whether to allow subdomains to use networks dedicated to their parent domain(s). Should be used with aclType=Domain, defaulted to allow.subdomain.network.access global config if not specified",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the network. Required for shared networks and isolated networks when it belongs to VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "the network offering ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworkOfferings"
+                },
+                {
+                    "name": "domainid",
+                    "description": "domain ID of the account owning a network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the CIDR of IPv6 network, must be at least /64",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startip",
+                    "description": "the beginning IP address in the network IP range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "externalid",
+                    "description": "ID of the network in an external system.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the network. Required for shared networks and isolated networks when it belongs to VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID for the network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones"
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP address in the network IP range. If not specified, will be defaulted to startIP",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the network",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "account",
+                    "description": "account that will own the network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network ID the network belongs to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "bypassvlanoverlapcheck",
+                    "description": "when true bypasses VLAN id/range overlap check during network creation for shared networks",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "aclid",
+                    "description": "Network ACL ID associated for the network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createNetworkACLList"
+                },
+                {
+                    "name": "endipv6",
+                    "description": "the ending IPv6 address in the IPv6 network range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of the IPv6 network. Required for Shared networks",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "network domain",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startipv6",
+                    "description": "the beginning IPv6 address in the IPv6 network range",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isolatedpvlan",
+                    "description": "the isolated private VLAN for this network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "acltype",
+                    "description": "Access control type; supported values are account and domain. In 3.0 all shared networks should have aclType=Domain, and all isolated networks - Account. Account means that only the account owner can use the network, domain - all accounts in the domain can use the network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "an optional project for the SSH key",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,updateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
+                    "type": "boolean"
+                },
+                {
+                    "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
+                    "type": "boolean"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
                     "type": "set"
                 },
                 {
-                    "description": "the ID of the image store",
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the network's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the id of the network",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the image store",
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the network's gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
+                    "type": "boolean"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                    "type": "string"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "externalid",
+                    "description": "The external id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
+                },
+                {
+                    "name": "related",
+                    "description": "related to what other network configuration",
+                    "type": "string"
+                },
+                {
                     "name": "name",
+                    "description": "the name of the network",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listNetworkOfferings",
+            "description": "Lists all available network offerings.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "list network offerings by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "guestiptype",
+                    "description": "list network offerings by guest type: shared or isolated",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sourcenatsupported",
+                    "description": "true if need to list only netwok offerings where source NAT is supported, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if need to list only network offerings which support specifying ip ranges",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "list network offerings by tags",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                },
+                {
+                    "name": "specifyvlan",
+                    "description": "the tags for the network offering.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if need to list only default network offerings. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "list network offerings by display text",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "forvpc",
+                    "description": "the network offering can be used only for network creation inside the VPC",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "istagged",
+                    "description": "true if offering has tags specified",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "list network offerings available for network creation in specific zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list network offerings by ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworkOfferings"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "list by traffic type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "supportedservices",
+                    "description": "list network offerings supporting certain services",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "availability",
+                    "description": "the availability of network offering. Default value is required",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "list network offerings by state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkid",
+                    "description": "the ID of the network. Pass this in if you want to see the available network offering that a network can be changed to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,migrateNetwork"
+                }
+            ],
+            "response": [
+                {
+                    "name": "state",
+                    "description": "state of the network offering. Can be Disabled/Enabled/Inactive",
                     "type": "string"
                 },
                 {
-                    "description": "the scope of the image store",
+                    "name": "conservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "guestiptype",
+                    "description": "guest type of the network offering, can be Shared or Isolated",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this network offering was created",
+                    "type": "date"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the network offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "egressdefaultpolicy",
+                    "description": "true if guest network default egress policy is allow; false if default egress policy is deny",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed.",
+                    "type": "integer"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "true if network offering supports persistent networks, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "maxconnections",
+                    "description": "maximum number of concurrents connections to be handled by lb",
+                    "type": "integer"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering used by virtual router provider",
+                    "type": "string"
+                },
+                {
+                    "name": "supportsstrechedl2subnet",
+                    "description": "true if network offering supports network that span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.",
+                    "type": "string"
+                },
+                {
+                    "name": "supportspublicaccess",
+                    "description": "true if network offering supports public access for guest networks",
+                    "type": "boolean"
+                },
+                {
+                    "name": "specifyvlan",
+                    "description": "true if network offering supports vlans, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "forvpc",
+                    "description": "true if network offering can be used by VPC networks only",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if network offering is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network offering supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "details",
+                    "description": "additional key/value details tied with network offering",
+                    "type": "map"
+                },
+                {
+                    "name": "availability",
+                    "description": "availability of the network offering",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network offering",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listDedicatedPods",
+            "description": "Lists dedicated pods.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "the ID of the pod",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "account",
+                    "description": "the name of the account associated with the pod. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "list dedicated pods by affinity group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the pod",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the dedicated resource",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the pod",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID to which the Pod is dedicated",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the Account Id to which the Pod is dedicated",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the ID of the Pod",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listVPCs",
+            "description": "Lists VPCs",
+            "isasync": false,
+            "related": "restartVPC,migrateVPC,updateVPC,createVPC,listVPCs",
+            "params": [
+                {
+                    "name": "displaytext",
+                    "description": "List by display text of the VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcofferingid",
+                    "description": "list by ID of the VPC offering",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateVPCOffering"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "list by name of the VPC",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "list VPCs by state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "list VPCs by restartRequired option",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cidr",
+                    "description": "list by cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list VPC by id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "restartVPC,listVPCs,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,updateProject,suspendProject"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "supportedservices",
+                    "description": "list VPC supporting certain services",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "list by zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                }
+            ],
+            "response": [
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the VPC belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the VPC owner",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantvpcrouter",
+                    "description": "if this VPC has redundant router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the VPC.",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "created",
+                    "description": "the date this VPC was created",
+                    "type": "date"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the VPC. Can be Inactive/Enabled",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the vpc",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "distributedvpcrouter",
+                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true VPC requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "regionlevelvpc",
+                    "description": "true if VPC is region level",
+                    "type": "boolean"
+                },
+                {
+                    "name": "network",
+                    "description": "the list of networks belongign to the VPC",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "dns1",
+                            "description": "the first DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "zone id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "canusefordeploy",
+                            "description": "list networks available for vm deployment",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the name of the zone the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingdisplaytext",
+                            "description": "display text of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonesnetworkspans",
+                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                            "type": "set"
+                        },
+                        {
+                            "name": "networkofferingname",
+                            "description": "name of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the ipaddress",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingid",
+                            "description": "network offering id the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                            "type": "string"
+                        },
+                        {
+                            "name": "restartrequired",
+                            "description": "true network requires restart",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkcidr",
+                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                            "type": "string"
+                        },
+                        {
+                            "name": "reservediprange",
+                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                            "type": "string"
+                        },
+                        {
+                            "name": "specifyipranges",
+                            "description": "true if network supports specifying ip ranges, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "subdomainaccess",
+                            "description": "true if users from subdomains can access the domain level network",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the owner of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vlan",
+                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingconservemode",
+                            "description": "true if network offering is ip conserve mode enabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the network's gateway",
+                            "type": "string"
+                        },
+                        {
+                            "name": "redundantrouter",
+                            "description": "If the network has redundant routers enabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkdomain",
+                            "description": "the network domain",
+                            "type": "string"
+                        },
+                        {
+                            "name": "aclid",
+                            "description": "ACL Id associated with the VPC network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaytext",
+                            "description": "the displaytext of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "dns2",
+                            "description": "the second DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "related",
+                            "description": "related to what other network configuration",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the network's netmask",
+                            "type": "string"
+                        },
+                        {
+                            "name": "acltype",
+                            "description": "acl type - access type to the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "externalid",
+                            "description": "The external id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain id of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingavailability",
+                            "description": "availability of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "state of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vpcid",
+                            "description": "VPC the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcastdomaintype",
+                            "description": "Broadcast domain type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "physicalnetworkid",
+                            "description": "the physical network id",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "service",
+                            "description": "the list of services",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the service name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "provider",
+                                    "description": "the service provider name",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "servicelist",
+                                            "description": "services for this provider",
+                                            "type": "list"
+                                        },
+                                        {
+                                            "name": "id",
+                                            "description": "uuid of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "canenableindividualservice",
+                                            "description": "true if individual services can be enabled/disabled",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "physicalnetworkid",
+                                            "description": "the physical network this belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "destinationphysicalnetworkid",
+                                            "description": "the destination physical network",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "state",
+                                            "description": "state of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "name",
+                                            "description": "the provider name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "capability",
+                                    "description": "the list of capabilities",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "canchooseservicecapability",
+                                            "description": "can this service capability value can be choosable while creatine network offerings",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "the capability value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "name",
+                                            "description": "the capability name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaynetwork",
+                            "description": "an optional field, whether to the display the network to the end user or not.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with network",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "issystem",
+                            "description": "true if network is system, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if network is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ispersistent",
+                            "description": "list networks that are persistent",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "strechedl2subnet",
+                            "description": "true if network can span multiple zones",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the project",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "cidr",
+                    "description": "the cidr the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpc for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vpcofferingid",
+                    "description": "vpc offering id the VPC is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the VPC",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "migrateVirtualMachineWithVolume",
+            "description": "Attempts Migration of a VM with its volumes to a different host",
+            "isasync": true,
+            "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "Destination Host ID to migrate VM to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost,addHost"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,migrateVirtualMachineWithVolume,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "migrateto",
+                    "description": "Storage to pool mapping. This parameter specifies the mapping between a volume and a pool where you want to migrate that volume. Format of this parameter: migrateto[volume-index].volume=<uuid>&migrateto[volume-index].pool=<uuid>Where, [volume-index] indicates the index to identify the volume that you want to migrate, volume=<uuid> indicates the UUID of the volume that you want to migrate, and pool=<uuid> indicates the UUID of the pool where you want to migrate the volume. Example: migrateto[0].volume=<71f43cd6-69b0-4d3b-9fbc-67f50963d60b>&migrateto[0].pool=<a382f181-3d2b-4413-b92d-b8931befa7e1>&migrateto[1].volume=<88de0173-55c0-4c1c-a269-83d0279eeedf>&migrateto[1].pool=<95d6e97c-6766-4d67-9a30-c449c15011d1>&migrateto[2].volume=<1b331390-59f2-4796-9993-bf11c6e76225>&migrateto[2].pool=<41fdb564-9d3b-447d-88ed-7628f7640cbc>",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "addNetworkDevice",
+            "description": "Adds a network device of one of the following types: ExternalDhcp, ExternalFirewall, ExternalLoadBalancer, PxeServer",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "networkdevicetype",
+                    "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkdeviceparameterlist",
+                    "description": "parameters for network device",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the network device",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateUser",
+            "description": "Updates a user account",
+            "isasync": false,
+            "related": "listUsers,enableUser,getUser,createUser,disableUser",
+            "params": [
+                {
+                    "name": "lastname",
+                    "description": "last name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "User uuid",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateUser,listUsers,enableUser,getUser,createUser,disableUser"
+                },
+                {
+                    "name": "username",
+                    "description": "Unique username",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "email",
+                    "description": "email",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "firstname",
+                    "description": "first name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "password",
+                    "description": "Clear text password (default hashed to SHA256SALT). If you wish to use any other hasing algorithm, you would need to write a custom authentication adapter. Can't be passed when command is executed via integration.api.port",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "usersecretkey",
+                    "description": "The secret key for the user. Must be specified with userSecretKey",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "userapikey",
+                    "description": "The API key for the user. Must be specified with userSecretKey",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "timezone",
+                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the user state",
+                    "type": "string"
+                },
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the user ID",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "the account type of the user",
+                    "type": "short"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if user is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the user account was created",
+                    "type": "date"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the timezone user was created in",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user name",
+                    "type": "string"
+                },
+                {
+                    "name": "iscallerchilddomain",
+                    "description": "the boolean value representing if the updating target is in caller's child domain",
+                    "type": "boolean"
+                },
+                {
+                    "name": "usersource",
+                    "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                    "type": "string"
+                },
+                {
+                    "name": "apikey",
+                    "description": "the api key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "firstname",
+                    "description": "the user firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "lastname",
+                    "description": "the user lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "the user email address",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "restartVPC",
+            "description": "Restarts a VPC",
+            "isasync": true,
+            "related": "migrateVPC,updateVPC,createVPC,listVPCs",
+            "params": [
+                {
+                    "name": "cleanup",
+                    "description": "If cleanup old network elements",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the VPC",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "restartVPC,migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "makeredundant",
+                    "description": "Turn a single VPC into a redundant one.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "state",
+                    "description": "state of the VPC. Can be Inactive/Enabled",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpc for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true VPC requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the VPC.",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantvpcrouter",
+                    "description": "if this VPC has redundant router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "distributedvpcrouter",
+                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "regionlevelvpc",
+                    "description": "true if VPC is region level",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcofferingid",
+                    "description": "vpc offering id the VPC is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the project",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "cidr",
+                    "description": "the cidr the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "network",
+                    "description": "the list of networks belongign to the VPC",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with network",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the name of the zone the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain id of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingavailability",
+                            "description": "availability of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonesnetworkspans",
+                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                            "type": "set"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the owner of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "redundantrouter",
+                            "description": "If the network has redundant routers enabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "aclid",
+                            "description": "ACL Id associated with the VPC network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "related",
+                            "description": "related to what other network configuration",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vlan",
+                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcastdomaintype",
+                            "description": "Broadcast domain type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "canusefordeploy",
+                            "description": "list networks available for vm deployment",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "issystem",
+                            "description": "true if network is system, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingid",
+                            "description": "network offering id the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "acltype",
+                            "description": "acl type - access type to the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if network is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkdomain",
+                            "description": "the network domain",
+                            "type": "string"
+                        },
+                        {
+                            "name": "strechedl2subnet",
+                            "description": "true if network can span multiple zones",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "zone id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "dns1",
+                            "description": "the first DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "service",
+                            "description": "the list of services",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the service name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "provider",
+                                    "description": "the service provider name",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "name",
+                                            "description": "the provider name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "servicelist",
+                                            "description": "services for this provider",
+                                            "type": "list"
+                                        },
+                                        {
+                                            "name": "canenableindividualservice",
+                                            "description": "true if individual services can be enabled/disabled",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "physicalnetworkid",
+                                            "description": "the physical network this belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "id",
+                                            "description": "uuid of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "state",
+                                            "description": "state of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "destinationphysicalnetworkid",
+                                            "description": "the destination physical network",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "capability",
+                                    "description": "the list of capabilities",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "value",
+                                            "description": "the capability value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "canchooseservicecapability",
+                                            "description": "can this service capability value can be choosable while creatine network offerings",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "name",
+                                            "description": "the capability name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaytext",
+                            "description": "the displaytext of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaynetwork",
+                            "description": "an optional field, whether to the display the network to the end user or not.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "restartrequired",
+                            "description": "true network requires restart",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "physicalnetworkid",
+                            "description": "the physical network id",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the network's netmask",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ispersistent",
+                            "description": "list networks that are persistent",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkofferingconservemode",
+                            "description": "true if network offering is ip conserve mode enabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "state",
+                            "description": "state of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the ipaddress",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkcidr",
+                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                            "type": "string"
+                        },
+                        {
+                            "name": "subdomainaccess",
+                            "description": "true if users from subdomains can access the domain level network",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "externalid",
+                            "description": "The external id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "reservediprange",
+                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingname",
+                            "description": "name of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the network's gateway",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingdisplaytext",
+                            "description": "display text of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vpcid",
+                            "description": "VPC the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "dns2",
+                            "description": "the second DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "specifyipranges",
+                            "description": "true if network supports specifying ip ranges, false otherwise",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "created",
+                    "description": "the date this VPC was created",
+                    "type": "date"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the vpc",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the VPC belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the VPC owner",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "cleanupSimulatorMock",
+            "description": "cleanup simulator mock",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "id of the configured mock",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "removeCertFromLoadBalancer",
+            "description": "Removes a certificate from a load balancer rule",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "attachVolume",
+            "description": "Attaches a disk volume to a virtual machine.",
+            "isasync": true,
+            "related": "migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
+            "params": [
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device to map the volume to within the guest OS. If no deviceId is passed in, the next available deviceId will be chosen. Possible values for a Linux OS are:* 0 - /dev/xvda* 1 - /dev/xvdb* 2 - /dev/xvdc* 4 - /dev/xvde* 5 - /dev/xvdf* 6 - /dev/xvdg* 7 - /dev/xvdh* 8 - /dev/xvdi* 9 - /dev/xvdj",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "    the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                }
+            ],
+            "response": [
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date the disk volume was created",
+                    "type": "date"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "shared or local storage",
+                    "type": "string"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "name of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "size of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "name of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                }
+            ]
+        },
+        {
+            "name": "addHost",
+            "description": "Adds a new host.",
+            "isasync": false,
+            "related": "addBaremetalHost,reconnectHost",
+            "params": [
+                {
+                    "name": "hypervisor",
+                    "description": "hypervisor type of the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "the username for the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "clustername",
+                    "description": "the cluster name for the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "Allocation state of this Host for allocation of new resources",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "url",
+                    "description": "the host URL",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "password",
+                    "description": "the password for the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "list of tags to be added to the host",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                }
+            ],
+            "response": [
+                {
+                    "name": "oscategoryname",
+                    "description": "the OS category name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "the resource state of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "lastannotated",
+                    "description": "the last time this host was annotated",
+                    "type": "date"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpusockets",
+                    "description": "the number of CPU sockets on the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "outofbandmanagement",
+                    "description": "the host out-of-band management information",
+                    "type": "outofbandmanagementresponse"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "capabilities",
+                    "description": "capabilities of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Host details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the host version",
+                    "type": "string"
+                },
+                {
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "type"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "managementserverid",
+                    "description": "the management server ID of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the host",
+                    "type": "status"
+                },
+                {
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the admin that annotated this host",
+                    "type": "string"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
+                    "type": "long"
+                },
+                {
+                    "name": "hostha",
+                    "description": "the host HA information information",
+                    "type": "hostharesponse"
+                },
+                {
+                    "name": "gpugroup",
+                    "description": "GPU cards present in the host",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "vgpu",
+                            "description": "the list of enabled vGPUs",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "maxcapacity",
+                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutionx",
+                                    "description": "Maximum X resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "videoram",
+                                    "description": "Video RAM for this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxheads",
+                                    "description": "Maximum displays per user",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutiony",
+                                    "description": "Maximum Y resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "remainingcapacity",
+                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxvgpuperpgpu",
+                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "vgputype",
+                                    "description": "Model Name of vGPU",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "gpugroupname",
+                            "description": "GPU cards present in the host",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
+                    "type": "long"
+                },
+                {
+                    "name": "events",
+                    "description": "events available for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the host hypervisor",
+                    "type": "hypervisortype"
+                },
+                {
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "averageload",
+                    "description": "the cpu average load on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the last annotation set on this host by an admin",
+                    "type": "string"
+                },
+                {
+                    "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "addBaremetalDhcp",
+            "description": "adds a baremetal dhcp server",
+            "isasync": true,
+            "related": "listBaremetalDhcp",
+            "params": [
+                {
+                    "name": "password",
+                    "description": "Credentials to reach external dhcp device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "Credentials to reach external dhcp device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "url",
+                    "description": "URL of the external dhcp appliance.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "dhcpservertype",
+                    "description": "Type of dhcp device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                }
+            ],
+            "response": [
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this external dhcp device belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "dhcpservertype",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "url",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "device id of ",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addTrafficMonitor",
+            "description": "Adds Traffic Monitor Host for Direct Network Usage",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "includezones",
+                    "description": "Traffic going into the listed zones will be metered",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "url",
+                    "description": "URL of the traffic monitor Host",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "excludezones",
+                    "description": "Traffic going into the listed zones will not be metered",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "Zone in which to add the external firewall appliance.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones,listZones"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "timeout",
+                    "description": "the timeout (in seconds) for requests to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "numretries",
+                    "description": "the number of times to retry requests to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID of the external firewall",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listLoadBalancers",
+            "description": "Lists load balancers",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "createLoadBalancer",
+            "params": [
+                {
+                    "name": "networkid",
+                    "description": "the network ID of the load balancer",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sourceipaddress",
+                    "description": "the source IP address of the load balancer",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the load balancer",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the load balancer",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sourceipaddressnetworkid",
+                    "description": "the network ID of the source IP address",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "scheme",
+                    "description": "the scheme of the load balancer. Supported value is internal in the current release",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,updateProject,suspendProject"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "loadbalancerinstance",
+                    "description": "the list of instances associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the name of the instance",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the instance",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the instance",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the instance ID",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "loadbalancerrule",
+                    "description": "the list of rules associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "state",
+                            "description": "the state of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "sourceport",
+                            "description": "source port of the load balancer rule",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "instanceport",
+                            "description": "instance port of the load balancer rule",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the Load Balancer ID",
+                    "type": "string"
+                },
+                {
+                    "name": "algorithm",
+                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
+                    "type": "string"
+                },
+                {
+                    "name": "sourceipaddressnetworkid",
+                    "description": "Load Balancer source ip network id",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "sourceipaddress",
+                    "description": "Load Balancer source ip",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkid",
+                    "description": "Load Balancer network id",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the Load Balancer",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateProject",
+            "description": "Updates a project",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "activateProject,suspendProject",
+            "params": [
+                {
+                    "name": "account",
+                    "description": "new Admin account for the project",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "display text of the project",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "id of the project to be modified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "activateProject,updateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this project",
+                    "type": "long"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the project's owner",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with vm",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "projectaccountname",
+                    "description": "the project account name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name where the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by project",
+                    "type": "float"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this project can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this project",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listUsers",
+            "description": "Lists user accounts",
+            "isasync": false,
+            "related": "enableUser,getUser,createUser,disableUser",
+            "params": [
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "List users by state of the user account.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "List user by ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listUsers,enableUser,getUser,createUser,disableUser"
+                },
+                {
+                    "name": "username",
+                    "description": "List user by the username",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accounttype",
+                    "description": "List users by account type. Valid types include admin, domain-admin, read-only-admin, or user.",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "lastname",
+                    "description": "the user lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "iscallerchilddomain",
+                    "description": "the boolean value representing if the updating target is in caller's child domain",
+                    "type": "boolean"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if user is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "the user state",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "firstname",
+                    "description": "the user firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the user ID",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "the user email address",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "apikey",
+                    "description": "the api key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "the account type of the user",
+                    "type": "short"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the user account was created",
+                    "type": "date"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "usersource",
+                    "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the timezone user was created in",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user name",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "registerUserKeys",
+            "description": "This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "User id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "enableUser,getUser,createUser,disableUser"
+                }
+            ],
+            "response": [
+                {
+                    "name": "apikey",
+                    "description": "the api key of the registered user",
+                    "type": "string"
+                },
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the registered user",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteLBStickinessPolicy",
+            "description": "Deletes a load balancer stickiness policy.",
+            "since": "3.0.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the LB stickiness policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createLBStickinessPolicy,listLBStickinessPolicies"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listVpnConnections",
+            "description": "Lists site to site vpn connection gateways",
+            "isasync": false,
+            "related": "createVpnConnection",
+            "params": [
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "id of the vpn connection",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createVpnConnection,listVpnConnections"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "id of vpc",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the connection ID",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "ikelifetime",
+                    "description": "Lifetime of IKE SA of customer gateway",
+                    "type": "long"
+                },
+                {
+                    "name": "ikepolicy",
+                    "description": "IKE policy of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "forceencap",
+                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passive",
+                    "description": "State of vpn connection",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is connection for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ipsecpsk",
+                    "description": "IPsec Preshared-Key of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
+                    "name": "s2scustomergatewayid",
+                    "description": "the customer gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "esppolicy",
+                    "description": "ESP policy of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "s2svpngatewayid",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "dpd",
+                    "description": "if DPD is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "State of vpn connection",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "esplifetime",
+                    "description": "Lifetime of ESP SA of customer gateway",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "listResourceLimits",
+            "description": "Lists resource limits.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "Lists resource limits by ID.",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "Type of resource. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses an account can own. 2 - Volume. Number of disk volumes an account can own. 3 - Snapshot. Number of snapshots an account can own. 4 - Template. Number of templates an account can register/create. 5 - Project. Number of projects an account can own. 6 - Network. Number of networks an account can own. 7 - VPC. Number of VPC an account can own. 8 - CPU. Number of CPU an account can allocate for his resources. 9 - Memory. Amount of RAM an account can allocate for his resources. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resourcetypename",
+                    "description": "Type of resource (wins over resourceType if both are provided). Values are: user_vm - Instance. Number of instances a user can create. public_ip - IP. Number of public IP addresses an account can own. volume - Volume. Number of disk volumes an account can own. snapshot - Snapshot. Number of snapshots an account can own. template - Template. Number of templates an account can register/create. project - Project. Number of projects an account can own. network - Network. Number of networks an account can own. vpc - VPC. Number of VPC an account can own. cpu - CPU. Number of CPU an account can allocate for his resources. memory - Memory. Amount of RAM an account can allocate for his resources. primary_storage - PrimaryStorage. Total primary storage space (in GiB) a user can use. secondary_storage - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "project",
+                    "description": "the project name of the resource limit",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the resource limit",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the resource limit",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcetypename",
+                    "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the resource limit",
+                    "type": "string"
+                },
+                {
+                    "name": "max",
+                    "description": "the maximum number of the resource. A -1 means the resource currently has no limit.",
+                    "type": "long"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the resource limit",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "disableUser",
+            "description": "Disables a user account",
+            "isasync": true,
+            "related": "enableUser,getUser,createUser",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "Disables user by user ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "enableUser,getUser,createUser,disableUser"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the user ID",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user name",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "the user email address",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "lastname",
+                    "description": "the user lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "usersource",
+                    "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "the account type of the user",
+                    "type": "short"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the timezone user was created in",
+                    "type": "string"
+                },
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "apikey",
+                    "description": "the api key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "firstname",
+                    "description": "the user firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the user account was created",
+                    "type": "date"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if user is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "iscallerchilddomain",
+                    "description": "the boolean value representing if the updating target is in caller's child domain",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "the user state",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateCloudToUseObjectStore",
+            "description": "Migrate current NFS secondary storages to use object store.",
+            "since": "4.3.0",
+            "isasync": false,
+            "related": "listSwifts,addImageStoreS3,listImageStores",
+            "params": [
+                {
+                    "name": "details",
+                    "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provider",
+                    "description": "the image store provider name",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "url",
+                    "description": "the URL for the image store",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name for the image store",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the image store",
+                    "type": "string"
+                },
+                {
                     "name": "scope",
+                    "description": "the scope of the image store",
                     "type": "scopetype"
                 },
                 {
-                    "description": "the provider name of the image store",
                     "name": "providername",
+                    "description": "the provider name of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the url of the image store",
-                    "name": "url",
+                    "name": "id",
+                    "description": "the ID of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone ID of the image store",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the image store",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the image store",
                     "name": "zonename",
-                    "type": "string"
-                }
-            ],
-            "since": "4.3.0"
-        },
-        {
-            "description": "Lists autoscale policies.",
-            "isasync": false,
-            "name": "listAutoScalePolicies",
-            "params": [
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
+                    "description": "the Zone name of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
-                    "length": 255,
-                    "name": "action",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the autoscale policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listAutoScalePolicies",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the condition of the policy",
-                    "length": 255,
-                    "name": "conditionid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the autoscale vm group",
-                    "length": 255,
-                    "name": "vmgroupid",
-                    "related": "listAutoScaleVmGroups",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id autoscale policy",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale policy ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the duration for which the conditions have to be true before action is taken",
-                    "name": "duration",
-                    "type": "integer"
-                },
-                {
-                    "description": "the account owning the autoscale policy",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the autoscale policy",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
-                    "name": "quiettime",
-                    "type": "integer"
-                },
-                {
-                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
-                    "name": "conditions",
-                    "type": "list"
-                },
-                {
-                    "description": "the project name of the autoscale policy",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the autoscale policy",
-                    "name": "domain",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "adds baremetal rack configuration text",
-            "isasync": true,
-            "name": "addBaremetalRct",
-            "params": [
-                {
-                    "description": "http url to baremetal RCT configuration",
-                    "length": 255,
-                    "name": "baremetalrcturl",
-                    "required": true,
-                    "type": "object"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "id of rct",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "url",
                     "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the image store",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates a role",
+            "name": "listIsos",
+            "description": "Lists all available ISO files.",
             "isasync": false,
-            "name": "updateRole",
+            "related": "listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "The description of the role",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "creates a role with this unique name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the role",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listRoles",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": "Retrieves VMware DC(s) associated with a zone.",
-            "isasync": false,
-            "name": "listVmwareDcs",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "id",
+                    "description": "list ISO by ID",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listIsos,listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "isofilter",
+                    "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Id of the CloudStack zone.",
+                    "name": "name",
+                    "description": "list all ISOs by name",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor for which to restrict the search",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "showremoved",
+                    "description": "show removed ISOs as well",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "zoneid",
-                    "related": "listZones,listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
+                    "description": "the ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "isready",
+                    "description": "true if this ISO is ready to be deployed",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if the ISO is publicly available to all users, false otherwise.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addVmwareDc",
             "response": [
                 {
-                    "description": "The VMware Datacenter name",
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "name",
+                    "description": "the template name",
                     "type": "string"
                 },
                 {
-                    "description": "The VMware Datacenter ID",
-                    "name": "id",
+                    "name": "templatetype",
+                    "description": "the type of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone ID associated with this VMware Datacenter",
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
+                    "type": "string"
+                },
+                {
                     "name": "zoneid",
+                    "description": "the ID of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "the size of the template",
                     "type": "long"
                 },
                 {
-                    "description": "The VMware vCenter name/ip",
-                    "name": "vcenter",
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
+                },
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
+                    "type": "boolean"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this template was created",
+                    "type": "date"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the template display text",
+                    "type": "string"
+                },
+                {
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "format",
+                    "description": "the format of the template.",
+                    "type": "imageformat"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "additional key/value details tied with template",
+                    "type": "map"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date this template was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists zones",
+            "name": "listAutoScalePolicies",
+            "description": "Lists autoscale policies.",
             "isasync": false,
-            "name": "listZones",
+            "related": "",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List zones by resource tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "map"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "flag to display the capacity of the zones",
+                    "name": "conditionid",
+                    "description": "the ID of the condition of the policy",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "showcapacities",
                     "required": false,
-                    "type": "boolean"
+                    "related": ""
                 },
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the zone",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomainChildren,listDomains"
                 },
                 {
-                    "description": "the network type of the zone that the virtual machine belongs to",
+                    "name": "vmgroupid",
+                    "description": "the ID of the autoscale vm group",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "networktype",
                     "required": false,
-                    "type": "string"
+                    "related": "listAutoScaleVmGroups"
                 },
                 {
-                    "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.",
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "available",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "the ID of the zone",
-                    "length": 255,
                     "name": "id",
-                    "related": "listZones,listZones,createZone",
+                    "description": "the ID of the autoscale policy",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listAutoScalePolicies"
+                },
+                {
+                    "name": "action",
+                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listZones,createZone",
             "response": [
                 {
-                    "description": "Zone name",
-                    "name": "name",
+                    "name": "project",
+                    "description": "the project name of the autoscale policy",
                     "type": "string"
                 },
                 {
-                    "description": "Zone description",
-                    "name": "description",
+                    "name": "domain",
+                    "description": "the domain name of the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "the action to be executed if all the conditions evaluate to true for the specified duration.",
+                    "type": "string"
+                },
+                {
+                    "name": "conditions",
+                    "description": "the list of IDs of the conditions that are being evaluated on every interval",
+                    "type": "list"
+                },
+                {
+                    "name": "duration",
+                    "description": "the duration for which the conditions have to be true before action is taken",
+                    "type": "integer"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "quiettime",
+                    "description": "the cool down period for which the policy should not be evaluated after the action has been taken",
+                    "type": "integer"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id autoscale policy",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale policy ID",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the autoscale policy",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listNuageVspGlobalDomainTemplate",
+            "description": "Lists Nuage VSP domain templates",
+            "since": "4.11.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+
+            ],
+            "response": [
+                {
+                    "name": "jobid",
+                    "description": "the UUID of the latest async job acting on this object",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the second DNS for the Zone",
-                    "name": "dns2",
+                    "name": "jobstatus",
+                    "description": "the current status of the latest async job acting on this object",
+                    "type": "integer"
+                },
+                {
+
+                }
+            ]
+        },
+        {
+            "name": "addBaremetalRct",
+            "description": "adds baremetal rack configuration text",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "baremetalrcturl",
+                    "description": "http url to baremetal RCT configuration",
+                    "type": "object",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "id of rct",
                     "type": "string"
                 },
                 {
-                    "description": "the UUID of the containing domain, null for public zones",
+                    "name": "url",
+                    "description": "url",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateRole",
+            "description": "Updates a role",
+            "since": "4.9.0",
+            "isasync": false,
+            "related": "listRoles",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "creates a role with this unique name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "description",
+                    "description": "The description of the role",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the role",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listRoles,updateRole"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the role",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listZones",
+            "description": "Lists zones",
+            "isasync": false,
+            "related": "createZone,listZones",
+            "params": [
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networktype",
+                    "description": "the network type of the zone that the virtual machine belongs to",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "showcapacities",
+                    "description": "flag to display the capacity of the zones",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "List zones by resource tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3"
+                },
+                {
+                    "name": "available",
+                    "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "domainid",
+                    "description": "the ID of the domain associated with the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones,listZones"
+                }
+            ],
+            "response": [
+                {
+                    "name": "guestcidraddress",
+                    "description": "the guest CIDR address for the Zone",
                     "type": "string"
                 },
                 {
-                    "description": "true if security groups support is enabled, false otherwise",
-                    "name": "securitygroupsenabled",
+                    "name": "domain",
+                    "description": "Network domain name for the networks in the zone",
+                    "type": "string"
+                },
+                {
+                    "name": "internaldns2",
+                    "description": "the second internal DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "networktype",
+                    "description": "the network type of the zone; can be Basic or Advanced",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "Zone name",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the zone",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "Zone id",
+                    "type": "string"
+                },
+                {
+                    "name": "localstorageenabled",
+                    "description": "true if local storage offering enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the display text of the zone",
-                    "name": "displaytext",
+                    "name": "zonetoken",
+                    "description": "Zone Token",
                     "type": "string"
                 },
                 {
-                    "description": "the network type of the zone; can be Basic or Advanced",
-                    "name": "networktype",
-                    "type": "string"
+                    "name": "securitygroupsenabled",
+                    "description": "true if security groups support is enabled, false otherwise",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the first DNS for the Zone",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the second IPv6 DNS for the Zone",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the first internal DNS for the Zone",
-                    "name": "internaldns1",
-                    "type": "string"
-                },
-                {
-                    "description": "Network domain name for the networks in the zone",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the containing domain, null for public zones",
-                    "name": "domainname",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with zone.",
                     "name": "tags",
+                    "description": "the list of resource tags associated with zone.",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
                             "name": "project",
+                            "description": "the project name where tag belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "tag value",
-                            "name": "value",
+                            "name": "resourcetype",
+                            "description": "resource type",
                             "type": "string"
                         },
                         {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
+                            "name": "key",
+                            "description": "tag key name",
                             "type": "string"
                         },
                         {
-                            "description": "id of the resource",
                             "name": "resourceid",
+                            "description": "id of the resource",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the domain associated with the tag",
                             "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the domain associated with the tag",
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
                             "name": "domain",
+                            "description": "the domain associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "Meta data associated with the zone (key/value pairs)",
-                    "name": "resourcedetails",
-                    "type": "map"
+                    "name": "internaldns1",
+                    "description": "the first internal DNS for the Zone",
+                    "type": "string"
                 },
                 {
-                    "description": "true if local storage offering enabled, false otherwise",
-                    "name": "localstorageenabled",
-                    "type": "boolean"
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the Zone",
+                    "type": "string"
                 },
                 {
-                    "description": "the allocation state of the cluster",
+
+                },
+                {
+                    "name": "domainname",
+                    "description": "the name of the containing domain, null for public zones",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "Zone description",
+                    "type": "string"
+                },
+                {
                     "name": "allocationstate",
+                    "description": "the allocation state of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "the second internal DNS for the Zone",
-                    "name": "internaldns2",
+                    "name": "dns2",
+                    "description": "the second DNS for the Zone",
                     "type": "string"
                 },
                 {
-                    "description": "the guest CIDR address for the Zone",
-                    "name": "guestcidraddress",
-                    "type": "string"
-                },
-                {
-                    "description": "Zone id",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "Zone Token",
-                    "name": "zonetoken",
-                    "type": "string"
-                },
-                {
-                    "description": "the capacity of the Zone",
                     "name": "capacity",
+                    "description": "the capacity of the Zone",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the percentage of capacity currently in use",
-                            "name": "percentused",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Cluster ID",
                             "name": "clusterid",
+                            "description": "the Cluster ID",
                             "type": "string"
                         },
                         {
-                            "description": "the capacity currently in use",
-                            "name": "capacityused",
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
                             "type": "long"
                         },
                         {
-                            "description": "the Zone name",
-                            "name": "zonename",
+                            "name": "podname",
+                            "description": "the Pod name",
                             "type": "string"
                         },
                         {
-                            "description": "the Zone ID",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity type",
                             "name": "type",
+                            "description": "the capacity type",
                             "type": "short"
                         },
                         {
-                            "description": "the Pod ID",
-                            "name": "podid",
+                            "name": "name",
+                            "description": "the capacity name",
                             "type": "string"
                         },
                         {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
+                            "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
                             "type": "long"
                         },
                         {
-                            "description": "the Pod name",
-                            "name": "podname",
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
                             "type": "string"
                         },
                         {
-                            "description": "the Cluster name",
                             "name": "clustername",
+                            "description": "the Cluster name",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the dhcp Provider for the Zone",
+                    "name": "domainid",
+                    "description": "the UUID of the containing domain, null for public zones",
+                    "type": "string"
+                },
+                {
                     "name": "dhcpprovider",
+                    "description": "the dhcp Provider for the Zone",
                     "type": "string"
                 },
                 {
-                    "description": "the first IPv6 DNS for the Zone",
-                    "name": "ip6dns1",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists remote access vpns",
-            "isasync": false,
-            "name": "listRemoteAccessVpns",
-            "params": [
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Lists remote access vpn rule with the specified ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateRemoteAccessVpn,listRemoteAccessVpns",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "uuid"
-                },
-                {
-                    "description": "list remote access VPNs for ceratin network",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "public ip address id of the vpn server",
-                    "length": 255,
-                    "name": "publicipid",
-                    "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "updateRemoteAccessVpn",
-            "response": [
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the ipsec preshared key",
-                    "name": "presharedkey",
-                    "type": "string"
-                },
-                {
-                    "description": "the range of ips to allocate to the clients",
-                    "name": "iprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the account of the remote access vpn",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "is vpn for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the public ip address of the vpn server",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the remote access vpn",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address of the vpn server",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the remote access vpn",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the account of the remote access vpn",
-                    "name": "domain",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a network ACL",
-            "isasync": true,
-            "name": "deleteNetworkACLList",
-            "params": [
-                {
-                    "description": "the ID of the network ACL",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createNetworkACLList",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Creates a system virtual-machine that implements network services",
-            "isasync": true,
-            "name": "createServiceInstance",
-            "params": [
-                {
-                    "description": "Availability zone for the service instance",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "An optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The template ID that specifies the image for the service appliance",
-                    "length": 255,
-                    "name": "templateid",
-                    "related": "registerTemplate,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The right (outside) network ID for the service instance",
-                    "length": 255,
-                    "name": "rightnetworkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "An optional account for the virtual machine. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Project ID for the service instance",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The service offering ID that defines the resources consumed by the service appliance",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "updateServiceOffering,listServiceOfferings",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The left (inside) network for service instance",
-                    "length": 255,
-                    "name": "leftnetworkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listNetscalerLoadBalancerNetworks,listF5LoadBalancerNetworks",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The name of the service instance",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Removes secondary IP from the NIC.",
-            "isasync": true,
-            "name": "removeIpFromNic",
-            "params": [
-                {
-                    "description": "the ID of the secondary ip address to nic",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Releases a Public IP range back to the system pool",
-            "isasync": false,
-            "name": "releasePublicIpRange",
-            "params": [
-                {
-                    "description": "the id of the Public IP range",
-                    "length": 255,
-                    "name": "id",
-                    "related": "dedicatePublicIpRange",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "lists network that are using a netscaler load balancer device",
-            "isasync": false,
-            "name": "listNetscalerLoadBalancerNetworks",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "netscaler load balancer device ID",
-                    "length": 255,
-                    "name": "lbdeviceid",
-                    "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listF5LoadBalancerNetworks",
-            "response": [
-                {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the list of services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
-                    "name": "subdomainaccess",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the network belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                    "name": "zonesnetworkspans",
-                    "type": "set"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Starts a system virtual machine.",
-            "isasync": true,
-            "name": "startSystemVm",
-            "params": [
-                {
-                    "description": "The ID of the system virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "migrateSystemVm,startSystemVm",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "migrateSystemVm",
-            "response": [
-                {
-                    "description": "the Zone name for the system VM",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the private MAC address for the system VM",
-                    "name": "privatemacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the system VM was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the system VM",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the system VM type",
-                    "name": "systemvmtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the system VM",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of active console sessions for the console proxy system vm",
-                    "name": "activeviewersessions",
-                    "type": "integer"
-                },
-                {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the system VM",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the system VM",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the private IP address for the system VM",
-                    "name": "privateip",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the system VM",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the system VM",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the system VM",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the system VM",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the system VM",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the system VM",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the system VM",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the system VM",
-                    "name": "zoneid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists supported methods of network isolation",
-            "isasync": false,
-            "name": "listNetworkIsolationMethods",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "Network isolation method name",
-                    "name": "name",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "List a storage network IP range.",
-            "isasync": false,
-            "name": "listStorageNetworkIpRange",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "optional parameter. Zone uuid, if specicied and both pod uuid and range uuid are absent, using it to search the range.",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "optional parameter. Storaget network IP range uuid, if specicied, using it to search the range.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createStorageNetworkIpRange,listStorageNetworkIpRange",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "optional parameter. Pod uuid, if specicied and range uuid is absent, using it to search the range.",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "createStorageNetworkIpRange",
-            "response": [
-                {
-                    "description": "the ID or VID of the VLAN.",
-                    "name": "vlan",
-                    "type": "integer"
-                },
-                {
-                    "description": "the Zone uuid of the storage network IP range",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the uuid of storage network IP range.",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ip of the storage network IP range",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ip of the storage network IP range",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of the storage network IP range",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the storage network IP range",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the network uuid of storage network IP range",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod uuid for the storage network IP range",
-                    "name": "podid",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Deletes a specified domain",
-            "isasync": true,
-            "name": "deleteDomain",
-            "params": [
-                {
-                    "description": "true if all domain resources (child domains, accounts) have to be cleaned up, false otherwise",
-                    "length": 255,
-                    "name": "cleanup",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "ID of domain to delete",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Configures a virtual router element.",
-            "isasync": true,
-            "name": "configureVirtualRouterElement",
-            "params": [
-                {
-                    "description": "the ID of the virtual router provider",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVirtualRouterElements,configureVirtualRouterElement",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Enabled/Disabled the service provider",
-                    "length": 255,
-                    "name": "enabled",
-                    "required": true,
-                    "type": "boolean"
-                }
-            ],
-            "related": "listVirtualRouterElements",
-            "response": [
-                {
-                    "description": "the domain ID associated with the provider",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "Enabled/Disabled the service provider",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account associated with the provider",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network service provider id of the provider",
-                    "name": "nspid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the provider",
-                    "name": "domain",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Migrate volume",
-            "isasync": true,
-            "name": "migrateVolume",
-            "params": [
-                {
-                    "description": "the ID of the volume",
-                    "length": 255,
-                    "name": "volumeid",
-                    "related": "updateVolume,migrateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "if the volume should be live migrated when it is attached to a running vm",
-                    "length": 255,
-                    "name": "livemigrate",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "destination storage pool ID to migrate the volume to",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "updateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-            "response": [
-                {
-                    "description": "provisioning type used to create volumes.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
-                    "type": "long"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the disk offering",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the volume",
-                    "name": "status",
-                    "type": "string"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
-                    "name": "displayvolume",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the disk volume",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the virtual machine",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
-                    "type": "date"
-                },
-                {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
-                    "type": "string"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "the boolean state of whether the volume is destroyed or not",
-                    "name": "destroyed",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "the date the disk volume was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the service offering for root disk",
-                    "name": "serviceofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the disk offering",
-                    "name": "diskofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "need quiesce vm or not when taking snapshot",
-                    "name": "quiescevm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the path of the volume",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Updates the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect.",
-            "isasync": true,
-            "name": "updateVMAffinityGroup",
-            "params": [
-                {
-                    "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter",
-                    "length": 255,
-                    "name": "affinitygroupids",
-                    "related": "",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVMAffinityGroup,resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter",
-                    "length": 255,
-                    "name": "affinitygroupnames",
-                    "related": "",
-                    "required": false,
-                    "type": "list"
-                }
-            ],
-            "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-            "response": [
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
+                    "name": "resourcedetails",
+                    "description": "Meta data associated with the zone (key/value pairs)",
                     "type": "map"
                 },
                 {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
+                    "name": "dns1",
+                    "description": "the first DNS for the Zone",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "A command to list events.",
+            "name": "listRemoteAccessVpns",
+            "description": "Lists remote access vpns",
             "isasync": false,
-            "name": "listEvents",
+            "related": "updateRemoteAccessVpn",
             "params": [
                 {
-                    "description": "the time the event was entered",
+                    "name": "networkid",
+                    "description": "list remote access VPNs for ceratin network",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "entrytime",
                     "required": false,
-                    "type": "integer"
+                    "since": "4.3",
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,migrateNetwork"
                 },
                 {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the event level (INFO, WARN, ERROR)",
-                    "length": 255,
-                    "name": "level",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the event type (see event types)",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the start date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")",
-                    "length": 255,
-                    "name": "startdate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "the ID of the event",
-                    "length": 255,
                     "name": "id",
-                    "related": "listEvents",
+                    "description": "Lists remote access vpn rule with the specified ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "since": "4.3",
+                    "related": "updateRemoteAccessVpn,listRemoteAccessVpns"
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "publicipid",
+                    "description": "public ip address id of the vpn server",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "listall",
                     "required": false,
-                    "type": "boolean"
+                    "related": "updateIpAddress,listPublicIpAddresses,associateIpAddress"
                 },
                 {
-                    "description": "the duration of the event",
-                    "length": 255,
-                    "name": "duration",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the end date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")",
-                    "length": 255,
-                    "name": "enddate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
                     "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list objects by project",
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the project name of the address",
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpn for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "iprange",
+                    "description": "the range of ips to allocate to the clients",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public ip address of the vpn server",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "the public ip address of the vpn server",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
                     "name": "project",
+                    "description": "the project name of the vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the account's domain",
+                    "name": "presharedkey",
+                    "description": "the ipsec preshared key",
+                    "type": "string"
+                },
+                {
                     "name": "domainid",
+                    "description": "the domain id of the account of the remote access vpn",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteNetworkACLList",
+            "description": "Deletes a network ACL",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the network ACL",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createNetworkACLList"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "removeIpFromNic",
+            "description": "Removes secondary IP from the NIC.",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the secondary ip address to nic",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createServiceInstance",
+            "description": "Creates a system virtual-machine that implements network services",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "leftnetworkid",
+                    "description": "The left (inside) network for service instance",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "rightnetworkid",
+                    "description": "The right (outside) network ID for the service instance",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,listNetscalerLoadBalancerNetworks,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "The service offering ID that defines the resources consumed by the service appliance",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "account",
+                    "description": "An optional account for the virtual machine. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "Availability zone for the service instance",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "domainid",
+                    "description": "An optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "name",
+                    "description": "The name of the service instance",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "templateid",
+                    "description": "The template ID that specifies the image for the service appliance",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "projectid",
+                    "description": "Project ID for the service instance",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the date the event was created",
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "releasePublicIpRange",
+            "description": "Releases a Public IP range back to the system pool",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the id of the Public IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "dedicatePublicIpRange"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listNetscalerLoadBalancerNetworks",
+            "description": "lists network that are using a netscaler load balancer device",
+            "isasync": false,
+            "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,createNetwork,migrateNetwork",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "lbdeviceid",
+                    "description": "netscaler load balancer device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "registerNetscalerControlCenter,addNetscalerLoadBalancer,listNetscalerLoadBalancers"
+                }
+            ],
+            "response": [
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "externalid",
+                    "description": "The external id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                    "type": "set"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
+                    "type": "boolean"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the network's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the network's gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "related",
+                    "description": "related to what other network configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "type": "string"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
+                    "type": "boolean"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "startSystemVm",
+            "description": "Starts a system virtual machine.",
+            "isasync": true,
+            "related": "migrateSystemVm",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "The ID of the system virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "migrateSystemVm,startSystemVm"
+                }
+            ],
+            "response": [
+                {
+                    "name": "privateip",
+                    "description": "the private IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "systemvmtype",
+                    "description": "the system VM type",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date and time the system VM was created",
                     "type": "date"
                 },
                 {
-                    "description": "whether the event is parented",
-                    "name": "parentid",
+                    "name": "id",
+                    "description": "the ID of the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the event",
+                    "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
+                    "type": "integer"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listHostHAResources",
+            "description": "Lists host HA resources",
+            "since": "4.11",
+            "isasync": false,
+            "related": "listHostHAProviders,enableHAForHost,disableHAForHost,configureHAForHost",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "List by host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addBaremetalHost,reconnectHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "haprovider",
+                    "description": "the host HA provider",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "if host HA is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "status",
+                    "description": "operation status",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hastate",
+                    "description": "the HA state of the host",
+                    "type": "hastate"
+                }
+            ]
+        },
+        {
+            "name": "listNetworkIsolationMethods",
+            "description": "Lists supported methods of network isolation",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "Network isolation method name",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listStorageNetworkIpRange",
+            "description": "List a storage network IP range.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "createStorageNetworkIpRange",
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "optional parameter. Zone uuid, if specicied and both pod uuid and range uuid are absent, using it to search the range.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "optional parameter. Pod uuid, if specicied and range uuid is absent, using it to search the range.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "id",
+                    "description": "optional parameter. Storaget network IP range uuid, if specicied, using it to search the range.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listStorageNetworkIpRange,createStorageNetworkIpRange"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the uuid of storage network IP range.",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
+                    "type": "integer"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone uuid of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod uuid for the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "endip",
+                    "description": "the end ip of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startip",
+                    "description": "the start ip of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network uuid of storage network IP range",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteDomain",
+            "description": "Deletes a specified domain",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "cleanup",
+                    "description": "true if all domain resources (child domains, accounts) have to be cleaned up, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "ID of domain to delete",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDomainChildren,listDomains"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "configureVirtualRouterElement",
+            "description": "Configures a virtual router element.",
+            "isasync": true,
+            "related": "listVirtualRouterElements",
+            "params": [
+                {
+                    "name": "enabled",
+                    "description": "Enabled/Disabled the service provider",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual router provider",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listVirtualRouterElements,configureVirtualRouterElement"
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "nspid",
+                    "description": "the physical network service provider id of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "Enabled/Disabled the service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "enableHAForHost",
+            "description": "Enables HA for a host",
+            "since": "4.11",
+            "isasync": true,
+            "related": "listHostHAProviders,disableHAForHost,configureHAForHost",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "haprovider",
+                    "description": "the host HA provider",
+                    "type": "string"
+                },
+                {
+                    "name": "hastate",
+                    "description": "the HA state of the host",
+                    "type": "hastate"
+                },
+                {
+                    "name": "haenable",
+                    "description": "if host HA is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "status",
+                    "description": "operation status",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "migrateVolume",
+            "description": "Migrate volume",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "listVolumes,detachVolume,createVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
+            "params": [
+                {
+                    "name": "livemigrate",
+                    "description": "if the volume should be live migrated when it is attached to a running vm",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "volumeid",
+                    "description": "the ID of the volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "migrateVolume,listVolumes,detachVolume,createVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "storageid",
+                    "description": "destination storage pool ID to migrate the volume to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                }
+            ],
+            "response": [
+                {
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "size of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "name of the disk offering",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                },
+                {
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zonename",
+                    "description": "name of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
+                    "type": "string"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date the disk volume was created",
+                    "type": "date"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "shared or local storage",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listEvents",
+            "description": "A command to list events.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "duration",
+                    "description": "the duration of the event",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the event",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listEvents"
+                },
+                {
+                    "name": "type",
+                    "description": "the event type (see event types)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "entrytime",
+                    "description": "the time the event was entered",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "startdate",
+                    "description": "the start date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "enddate",
+                    "description": "the end date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "level",
+                    "description": "the event level (INFO, WARN, ERROR)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startid",
+                    "description": "the parent/start ID of the event, when provided this will list all the events with the start/parent ID including the parent event",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listEvents"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "description",
+                    "description": "a brief description of the event",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the account's domain",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the event",
                     "type": "state"
                 },
                 {
-                    "description": "the type of the event (see event types)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the event level (INFO, WARN, ERROR)",
-                    "name": "level",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name for the account that owns the object being acted on in the event (e.g. the owner of the virtual machine, ip address, or security group)",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "a brief description of the event",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the account's domain",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
+                    "name": "id",
                     "description": "the ID of the event",
-                    "name": "id",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the user who performed the action (can be different from the account if an admin is performing an action for a user, e.g. starting/stopping a user's virtual machine)",
-                    "name": "username",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Creates resource tag(s)",
-            "isasync": true,
-            "name": "createTags",
-            "params": [
-                {
-                    "description": "list of resources to create the tags for",
-                    "length": 255,
-                    "name": "resourceids",
-                    "required": true,
-                    "type": "list"
-                },
-                {
-                    "description": "type of the resource",
-                    "length": 255,
-                    "name": "resourcetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Map of tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": true,
-                    "type": "map"
-                },
-                {
-                    "description": "identifies client specific tag. When the value is not null, the tag can't be used by cloudStack code internally",
-                    "length": 255,
-                    "name": "customer",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.0.0"
-        },
-        {
-            "description": "Configures a SRX firewall device",
-            "isasync": true,
-            "name": "configureSrxFirewall",
-            "params": [
-                {
-                    "description": "SRX firewall device ID",
-                    "length": 255,
-                    "name": "fwdeviceid",
-                    "related": "configureSrxFirewall",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "capacity of the firewall device, Capacity will be interpreted as number of networks device can handle",
-                    "length": 255,
-                    "name": "fwdevicecapacity",
-                    "required": false,
-                    "type": "long"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the SRX firewall",
-                    "name": "fwdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device capacity",
-                    "name": "fwdevicecapacity",
-                    "type": "long"
-                },
-                {
-                    "description": "the private security zone of the external firewall",
-                    "name": "privatezone",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "fwdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "fwdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this SRX firewall belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Reset api count",
-            "isasync": false,
-            "name": "resetApiLimit",
-            "params": [
-                {
-                    "description": "the ID of the acount whose limit to be reset",
-                    "length": 255,
-                    "name": "account",
-                    "related": "listAccounts,listAccounts,enableAccount",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "getApiLimit",
-            "response": [
-                {
-                    "description": "currently allowed number of apis",
-                    "name": "apiAllowed",
-                    "type": "int"
-                },
-                {
-                    "description": "number of api already issued",
-                    "name": "apiIssued",
-                    "type": "int"
-                },
-                {
-                    "description": "the account uuid of the api remaining count",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the api remaining count",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "seconds left to reset counters",
-                    "name": "expireAfter",
-                    "type": "long"
-                }
-            ]
-        },
-        {
-            "description": "Create an Internal Load Balancer element.",
-            "isasync": true,
-            "name": "createInternalLoadBalancerElement",
-            "params": [
-                {
-                    "description": "the network service provider ID of the internal load balancer element",
-                    "length": 255,
-                    "name": "nspid",
-                    "related": "listNetworkServiceProviders",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "configureInternalLoadBalancerElement",
-            "response": [
-                {
-                    "description": "the physical network service provider id of the element",
-                    "name": "nspid",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the internal load balancer element",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "Enabled/Disabled the element",
-                    "name": "enabled",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Creates a VLAN IP range.",
-            "isasync": false,
-            "name": "deleteVlanIpRange",
-            "params": [
-                {
-                    "description": "the id of the VLAN IP range",
-                    "length": 255,
-                    "name": "id",
-                    "related": "dedicatePublicIpRange",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Generates an alert",
-            "isasync": true,
-            "name": "generateAlert",
-            "params": [
-                {
-                    "description": "Alert description",
-                    "length": 999,
-                    "name": "description",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Zone id for which alert is generated",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Pod id for which alert is generated",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Type of the alert",
-                    "length": 255,
                     "name": "type",
-                    "required": true,
-                    "type": "short"
-                },
-                {
-                    "description": "Name of the alert",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.3"
-        },
-        {
-            "description": "Add a new Ldap Configuration",
-            "isasync": false,
-            "name": "addLdapConfiguration",
-            "params": [
-                {
-                    "description": "Hostname",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Port",
-                    "length": 255,
-                    "name": "port",
-                    "required": true,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "port",
-                    "name": "port",
-                    "type": "int"
-                },
-                {
-                    "description": "hostname",
-                    "name": "hostname",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Configure the LDAP context for this site.",
-            "isasync": false,
-            "name": "ldapConfig",
-            "params": [
-                {
-                    "description": "Specify the distinguished name of a user with the search permission on the directory.",
-                    "length": 255,
-                    "name": "binddn",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Enter the password for trust store.",
-                    "length": 255,
-                    "name": "truststorepass",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Enter the password.",
-                    "length": 255,
-                    "name": "bindpass",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Hostname or ip address of the ldap server eg: my.ldap.com",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Enter the path to trust certificates store.",
-                    "length": 255,
-                    "name": "truststore",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "You specify a query filter here, which narrows down the users, who can be part of this domain.",
-                    "length": 255,
-                    "name": "queryfilter",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The search base defines the starting point for the search in the directory tree Example:  dc=cloud,dc=com.",
-                    "length": 255,
-                    "name": "searchbase",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Specify the LDAP port if required, default is 389.",
-                    "length": 255,
-                    "name": "port",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL.",
-                    "length": 255,
-                    "name": "ssl",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "If true return current LDAP configuration",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "ldapRemove",
-            "response": [
-                {
-                    "description": "The search base defines the starting point for the search in the directory tree Example:  dc=cloud,dc=com",
-                    "name": "searchbase",
-                    "type": "string"
-                },
-                {
-                    "description": "Specify the distinguished name of a user with the search permission on the directory",
-                    "name": "binddn",
-                    "type": "string"
-                },
-                {
-                    "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL",
-                    "name": "ssl",
-                    "type": "string"
-                },
-                {
-                    "description": "Specify the LDAP port if required, default is 389",
-                    "name": "port",
-                    "type": "string"
-                },
-                {
-                    "description": "Hostname or ip address of the ldap server eg: my.ldap.com",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "DN password",
-                    "name": "bindpass",
-                    "type": "string"
-                },
-                {
-                    "description": "You specify a query filter here, which narrows down the users, who can be part of this domain",
-                    "name": "queryfilter",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Deletes a port forwarding rule",
-            "isasync": true,
-            "name": "deletePortForwardingRule",
-            "params": [
-                {
-                    "description": "the ID of the port forwarding rule",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a global load balancer rule.",
-            "isasync": true,
-            "name": "deleteGlobalLoadBalancerRule",
-            "params": [
-                {
-                    "description": "the ID of the global load balancer rule",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Lists BigSwitch BCF Controller devices",
-            "isasync": false,
-            "name": "listBigSwitchBcfDevices",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "bigswitch BCF controller device ID",
-                    "length": 255,
-                    "name": "bcfdeviceid",
-                    "related": "listBigSwitchBcfDevices",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the controller password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "NAT support",
-                    "name": "nat",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device name",
-                    "name": "bigswitchdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this BigSwitch BCF segment belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the controller Ip address",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the BigSwitch BCF Controller",
-                    "name": "bcfdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the controller username",
-                    "name": "username",
-                    "type": "string"
-                }
-            ],
-            "since": "4.6.0"
-        },
-        {
-            "description": "Updates a configuration.",
-            "isasync": false,
-            "name": "updateConfiguration",
-            "params": [
-                {
-                    "description": "the ID of the Account to update the parameter value for corresponding account",
-                    "length": 255,
-                    "name": "accountid",
-                    "related": "listAccounts,listAccounts,enableAccount",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the Zone to update the parameter value for corresponding zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool",
-                    "length": 255,
-                    "name": "storageid",
-                    "related": "createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the Cluster to update the parameter value for corresponding cluster",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the configuration",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the value of the configuration",
-                    "length": 4095,
-                    "name": "value",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the value of the configuration",
-                    "name": "id",
-                    "type": "long"
-                },
-                {
-                    "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated",
-                    "name": "scope",
-                    "type": "string"
-                },
-                {
-                    "description": "the category of the configuration",
-                    "name": "category",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the configuration",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the value of the configuration",
-                    "name": "value",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the configuration",
-                    "name": "name",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Dedicates a Public IP range to an account",
-            "isasync": false,
-            "name": "dedicatePublicIpRange",
-            "params": [
-                {
-                    "description": "domain ID of the account owning a VLAN",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "project who will own the VLAN",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the id of the VLAN IP range",
-                    "length": 255,
-                    "name": "id",
-                    "related": "dedicatePublicIpRange",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "account who will own the VLAN",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the Pod name for the VLAN IP range",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the VLAN IP range",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the VLAN IP range",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the VLAN IP range",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the VLAN IP range",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the VLAN IP range",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vlan range",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the VLAN IP range",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID or VID of the VLAN.",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ip of the VLAN IP range",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ip of the VLAN IP range",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the VLAN IP range",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of the VLAN IP range",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the VLAN IP range",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vlan range",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the start ipv6 of the VLAN IP range",
-                    "name": "startipv6",
-                    "type": "string"
-                },
-                {
-                    "description": "the network id of vlan range",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the VLAN IP range",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the end ipv6 of the VLAN IP range",
-                    "name": "endipv6",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Enables static NAT for given IP address",
-            "isasync": false,
-            "name": "enableStaticNat",
-            "params": [
-                {
-                    "description": "the ID of the virtual machine for enabling static NAT feature",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "VM guest NIC secondary IP address for the port forwarding rule",
-                    "length": 255,
-                    "name": "vmguestip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address ID for which static NAT feature is being enabled",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The network of the VM the static NAT will be enabled for. Required when public IP address is not associated with any guest network yet (VPC case)",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a Zone.",
-            "isasync": false,
-            "name": "deleteZone",
-            "params": [
-                {
-                    "description": "the ID of the Zone",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Recovers a virtual machine.",
-            "isasync": false,
-            "name": "recoverVirtualMachine",
-            "params": [
-                {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,recoverVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-            "response": [
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
+                    "description": "the type of the event (see event types)",
                     "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
                     "name": "created",
+                    "description": "the date the event was created",
                     "type": "date"
                 },
                 {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
+                    "name": "parentid",
+                    "description": "whether the event is parented",
                     "type": "string"
                 },
                 {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
+                    "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
+                    "name": "domainid",
+                    "description": "the id of the account's domain",
                     "type": "string"
                 },
                 {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
+                    "name": "level",
+                    "description": "the event level (INFO, WARN, ERROR)",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the virtual machine",
+                    "name": "username",
+                    "description": "the name of the user who performed the action (can be different from the account if an admin is performing an action for a user, e.g. starting/stopping a user's virtual machine)",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name for the account that owns the object being acted on in the event (e.g. the owner of the virtual machine, ip address, or security group)",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateVMAffinityGroup",
+            "description": "Updates the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect.",
+            "isasync": true,
+            "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
+            "params": [
+                {
+                    "name": "affinitygroupnames",
+                    "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
                     "name": "id",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "affinitygroupids",
+                    "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
                     "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
                             "name": "description",
+                            "description": "the description of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the affinity group",
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
                             "name": "name",
+                            "description": "the name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "virtual machine IDs associated with this affinity group",
                             "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
                             "type": "list"
                         },
                         {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
+                            "name": "id",
+                            "description": "the ID of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
                             "name": "project",
+                            "description": "the project name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
                 },
                 {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        }
+                    ]
                 },
                 {
-                    "description": "the name of the ISO attached to the virtual machine",
                     "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
                     "name": "details",
+                    "description": "Vm details in key/value pairs.",
                     "type": "map"
                 },
                 {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                }
+            ]
+        },
+        {
+            "name": "listHostHAProviders",
+            "description": "Lists HA providers",
+            "since": "4.11",
+            "isasync": false,
+            "related": "disableHAForHost,configureHAForHost",
+            "params": [
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor type of the resource",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
+                    "name": "hastate",
+                    "description": "the HA state of the host",
+                    "type": "hastate"
+                },
+                {
+                    "name": "haenable",
+                    "description": "if host HA is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "haprovider",
+                    "description": "the host HA provider",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "operation status",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "registerNetscalerServicePackage",
+            "description": "Registers NCC Service Package",
+            "isasync": false,
+            "related": "listRegisteredServicePackages",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "Name of the service Package.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "Description of Service Package",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "Service Package UUID",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "Service Package Name",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "Description of Service Package",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createTags",
+            "description": "Creates resource tag(s)",
+            "since": "4.0.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "resourceids",
+                    "description": "list of resources to create the tags for",
+                    "type": "list",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "tags",
+                    "description": "Map of tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "type of the resource",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "customer",
+                    "description": "identifies client specific tag. When the value is not null, the tag can't be used by cloudStack code internally",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listCaCertificate",
+            "description": "Lists the CA public certificate(s) as support by the configured/provided CA plugin",
+            "since": "4.11.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "provider",
+                    "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "certificate",
+                    "description": "The client certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "cacertificates",
+                    "description": "The CA certificate(s)",
+                    "type": "string"
+                },
+                {
+                    "name": "privatekey",
+                    "description": "Private key for the certificate",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "resetApiLimit",
+            "description": "Reset api count",
+            "isasync": false,
+            "related": "getApiLimit",
+            "params": [
+                {
+                    "name": "account",
+                    "description": "the ID of the acount whose limit to be reset",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAccounts,enableAccount,listAccounts"
+                }
+            ],
+            "response": [
+                {
+                    "name": "expireAfter",
+                    "description": "seconds left to reset counters",
                     "type": "long"
                 },
                 {
-                    "description": "the state of the virtual machine",
+                    "name": "account",
+                    "description": "the account name of the api remaining count",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account uuid of the api remaining count",
+                    "type": "string"
+                },
+                {
+                    "name": "apiIssued",
+                    "description": "number of api already issued",
+                    "type": "int"
+                },
+                {
+                    "name": "apiAllowed",
+                    "description": "currently allowed number of apis",
+                    "type": "int"
+                }
+            ]
+        },
+        {
+            "name": "createInternalLoadBalancerElement",
+            "description": "Create an Internal Load Balancer element.",
+            "since": "4.2.0",
+            "isasync": true,
+            "related": "configureInternalLoadBalancerElement",
+            "params": [
+                {
+                    "name": "nspid",
+                    "description": "the network service provider ID of the internal load balancer element",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworkServiceProviders"
+                }
+            ],
+            "response": [
+                {
+                    "name": "enabled",
+                    "description": "Enabled/Disabled the element",
+                    "type": "boolean"
+                },
+                {
+                    "name": "nspid",
+                    "description": "the physical network service provider id of the element",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the internal load balancer element",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteVlanIpRange",
+            "description": "Creates a VLAN IP range.",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the id of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "dedicatePublicIpRange"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addLdapConfiguration",
+            "description": "Add a new Ldap Configuration",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "domainid",
+                    "description": "linked domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "hostname",
+                    "description": "Hostname",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "port",
+                    "description": "Port",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "domainid",
+                    "description": "linked domain",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "name of the host running the ldap server",
+                    "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "port teh ldap server is running on",
+                    "type": "int"
+                }
+            ]
+        },
+        {
+            "name": "generateAlert",
+            "description": "Generates an alert",
+            "since": "4.3",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "podid",
+                    "description": "Pod id for which alert is generated",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "type",
+                    "description": "Type of the alert",
+                    "type": "short",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "zoneid",
+                    "description": "Zone id for which alert is generated",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "name",
+                    "description": "Name of the alert",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "Alert description",
+                    "type": "string",
+                    "length": 999,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "ldapConfig",
+            "description": "(Deprecated, use addLdapConfiguration) Configure the LDAP context for this site.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "ldapRemove",
+            "params": [
+                {
+                    "name": "bindpass",
+                    "description": "Enter the password.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "truststore",
+                    "description": "Enter the path to trust certificates store.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ssl",
+                    "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "port",
+                    "description": "Specify the LDAP port if required, default is 389.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "binddn",
+                    "description": "Specify the distinguished name of a user with the search permission on the directory.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If true return current LDAP configuration",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "queryfilter",
+                    "description": "You specify a query filter here, which narrows down the users, who can be part of this domain.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "searchbase",
+                    "description": "The search base defines the starting point for the search in the directory tree Example:  dc=cloud,dc=com.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "truststorepass",
+                    "description": "Enter the password for trust store.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostname",
+                    "description": "Hostname or ip address of the ldap server eg: my.ldap.com",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "ssl",
+                    "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL",
+                    "type": "string"
+                },
+                {
+                    "name": "binddn",
+                    "description": "Specify the distinguished name of a user with the search permission on the directory",
+                    "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "Specify the LDAP port if required, default is 389",
+                    "type": "string"
+                },
+                {
+                    "name": "bindpass",
+                    "description": "DN password",
+                    "type": "string"
+                },
+                {
+                    "name": "queryfilter",
+                    "description": "You specify a query filter here, which narrows down the users, who can be part of this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "Hostname or ip address of the ldap server eg: my.ldap.com",
+                    "type": "string"
+                },
+                {
+                    "name": "searchbase",
+                    "description": "The search base defines the starting point for the search in the directory tree Example:  dc=cloud,dc=com",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "migrateVPC",
+            "description": "moves a vpc to another physical network",
+            "since": "4.11.0",
+            "isasync": true,
+            "related": "updateVPC,createVPC,listVPCs",
+            "params": [
+                {
+                    "name": "tiernetworkofferings",
+                    "description": "network offering ids for each network in the vpc. Example: tierNetworkOfferings[0].networkId=networkId1&tierNetworkOfferings[0].networkOfferingId=newNetworkofferingId1&tierNetworkOfferings[1].networkId=networkId2&tierNetworkOfferings[1].networkOfferingId=newNetworkofferingId2",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "resume",
+                    "description": "true if previous network migration cmd failed",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "the ID of the vpc",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "migrateVPC,updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "vpcofferingid",
+                    "description": "vpc offering ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVPCOffering"
+                }
+            ],
+            "response": [
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the vpc",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpc for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true VPC requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "network",
+                    "description": "the list of networks belongign to the VPC",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "state",
+                            "description": "state of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcastdomaintype",
+                            "description": "Broadcast domain type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the network's netmask",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingname",
+                            "description": "name of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "dns2",
+                            "description": "the second DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "displaynetwork",
+                            "description": "an optional field, whether to the display the network to the end user or not.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "strechedl2subnet",
+                            "description": "true if network can span multiple zones",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "vlan",
+                            "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "service",
+                            "description": "the list of services",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the service name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "provider",
+                                    "description": "the service provider name",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "name",
+                                            "description": "the provider name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "state",
+                                            "description": "state of the network provider",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "physicalnetworkid",
+                                            "description": "the physical network this belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "destinationphysicalnetworkid",
+                                            "description": "the destination physical network",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "servicelist",
+                                            "description": "services for this provider",
+                                            "type": "list"
+                                        },
+                                        {
+                                            "name": "canenableindividualservice",
+                                            "description": "true if individual services can be enabled/disabled",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "id",
+                                            "description": "uuid of the network provider",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "capability",
+                                    "description": "the list of capabilities",
+                                    "type": "list",
+                                    "response": [
+                                        {
+                                            "name": "name",
+                                            "description": "the capability name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "canchooseservicecapability",
+                                            "description": "can this service capability value can be choosable while creatine network offerings",
+                                            "type": "boolean"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "the capability value",
+                                            "type": "string"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "subdomainaccess",
+                            "description": "true if users from subdomains can access the domain level network",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "dns1",
+                            "description": "the first DNS for the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "acltype",
+                            "description": "acl type - access type to the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain id of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingid",
+                            "description": "network offering id the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the ipaddress",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingdisplaytext",
+                            "description": "display text of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the owner of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "canusefordeploy",
+                            "description": "list networks available for vm deployment",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with network",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "physicalnetworkid",
+                            "description": "the physical network id",
+                            "type": "string"
+                        },
+                        {
+                            "name": "reservediprange",
+                            "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkofferingavailability",
+                            "description": "availability of the network offering the network is created from",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "zone id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "externalid",
+                            "description": "The external id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonesnetworkspans",
+                            "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                            "type": "set"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the name of the zone the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "specifyipranges",
+                            "description": "true if network supports specifying ip ranges, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkcidr",
+                            "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ispersistent",
+                            "description": "list networks that are persistent",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkofferingconservemode",
+                            "description": "true if network offering is ip conserve mode enabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "displaytext",
+                            "description": "the displaytext of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "related",
+                            "description": "related to what other network configuration",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "aclid",
+                            "description": "ACL Id associated with the VPC network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the id of the network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if network is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                            "type": "string"
+                        },
+                        {
+                            "name": "restartrequired",
+                            "description": "true network requires restart",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "vpcid",
+                            "description": "VPC the network belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "redundantrouter",
+                            "description": "If the network has redundant routers enabled",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "issystem",
+                            "description": "true if network is system, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the network owner",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkdomain",
+                            "description": "the network domain",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the network's gateway",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the VPC.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the project",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the VPC owner",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "state of the VPC. Can be Inactive/Enabled",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the availability zone for the virtual machine",
+                    "name": "projectid",
+                    "description": "the project id of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this VPC was created",
+                    "type": "date"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcofferingid",
+                    "description": "vpc offering id the VPC is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantvpcrouter",
+                    "description": "if this VPC has redundant router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cidr",
+                    "description": "the cidr the VPC",
+                    "type": "string"
+                },
+                {
+                    "name": "regionlevelvpc",
+                    "description": "true if VPC is region level",
+                    "type": "boolean"
+                },
+                {
+                    "name": "distributedvpcrouter",
+                    "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's",
+                    "type": "boolean"
+                },
+                {
                     "name": "zonename",
+                    "description": "the name of the zone the VPC belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deletePortForwardingRule",
+            "description": "Deletes a port forwarding rule",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the port forwarding rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteGlobalLoadBalancerRule",
+            "description": "Deletes a global load balancer rule.",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the global load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listBigSwitchBcfDevices",
+            "description": "Lists BigSwitch BCF Controller devices",
+            "since": "4.6.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "bcfdeviceid",
+                    "description": "bigswitch BCF controller device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listBigSwitchBcfDevices"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                }
+            ],
+            "response": [
+                {
+                    "name": "bcfdeviceid",
+                    "description": "device id of the BigSwitch BCF Controller",
                     "type": "string"
                 },
                 {
-                    "description": "the vgpu type used by the virtual machine",
+                    "name": "password",
+                    "description": "the controller password",
+                    "type": "string"
+                },
+                {
+                    "name": "bigswitchdevicename",
+                    "description": "device name",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this BigSwitch BCF segment belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "nat",
+                    "description": "NAT support",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the controller Ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the controller username",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateConfiguration",
+            "description": "Updates a configuration.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "domainid",
+                    "description": "the ID of the Domain to update the parameter value for corresponding domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the Cluster to update the parameter value for corresponding cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the ID of the Account to update the parameter value for corresponding account",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAccounts,enableAccount,listAccounts"
+                },
+                {
+                    "name": "value",
+                    "description": "the value of the configuration",
+                    "type": "string",
+                    "length": 4095,
+                    "required": false
+                },
+                {
+                    "name": "imagestoreuuid",
+                    "description": "the ID of the Image Store to update the parameter value for corresponding image store",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listSwifts,addImageStoreS3,listImageStores"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the Zone to update the parameter value for corresponding zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the configuration",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "storageid",
+                    "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "findStoragePoolsForMigration,cancelStorageMaintenance,enableStorageMaintenance,createStoragePool"
+                }
+            ],
+            "response": [
+                {
+                    "name": "category",
+                    "description": "the category of the configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "value",
+                    "description": "the value of the configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "scope",
+                    "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the value of the configuration",
+                    "type": "long"
+                }
+            ]
+        },
+        {
+            "name": "configureHAForHost",
+            "description": "Configures HA for a host",
+            "since": "4.11",
+            "isasync": true,
+            "related": "disableHAForHost",
+            "params": [
+                {
+                    "name": "provider",
+                    "description": "HA provider",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "hostid",
+                    "description": "ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "haprovider",
+                    "description": "the host HA provider",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "if host HA is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hastate",
+                    "description": "the HA state of the host",
+                    "type": "hastate"
+                },
+                {
+                    "name": "status",
+                    "description": "operation status",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "dedicatePublicIpRange",
+            "description": "Dedicates a Public IP range to an account",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the id of the VLAN IP range",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "dedicatePublicIpRange"
+                },
+                {
+                    "name": "account",
+                    "description": "account who will own the VLAN",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "project who will own the VLAN",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "domainid",
+                    "description": "domain ID of the account owning a VLAN",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDomainChildren,listDomains"
+                }
+            ],
+            "response": [
+                {
+                    "name": "endip",
+                    "description": "the end ip of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name for the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startip",
+                    "description": "the start ip of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the netmask of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startipv6",
+                    "description": "the start ipv6 of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "forsystemvms",
+                    "description": "indicates whether VLAN IP range is dedicated to system vms or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "endipv6",
+                    "description": "the end ipv6 of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the VLAN IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the VLAN IP range",
+                    "type": "boolean"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the VLAN IP range",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listRegisteredServicePackages",
+            "description": "lists registered service packages",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "Service Package UUID",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "Service Package Name",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "Description of Service Package",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "enableStaticNat",
+            "description": "Enables static NAT for given IP address",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "networkid",
+                    "description": "The network of the VM the static NAT will be enabled for. Required when public IP address is not associated with any guest network yet (VPC case)",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public IP address ID for which static NAT feature is being enabled",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateIpAddress,listPublicIpAddresses,associateIpAddress"
+                },
+                {
+                    "name": "vmguestip",
+                    "description": "VM guest NIC secondary IP address for the port forwarding rule",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine for enabling static NAT feature",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "deleteZone",
+            "description": "Deletes a Zone.",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the Zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "disableHAForCluster",
+            "description": "Disables HA cluster-wide",
+            "since": "4.11",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "clusterid",
+                    "description": "ID of the cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addCluster"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "recoverVirtualMachine",
+            "description": "Recovers a virtual machine.",
+            "isasync": false,
+            "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,recoverVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                }
+            ],
+            "response": [
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
                 },
                 {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
                     "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the description of the security group",
-                            "name": "description",
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
                             "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
                             "type": "set"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
+                        },
                         {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
+                            "name": "domain",
+                            "description": "the domain name of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
+                            "name": "projectid",
+                            "description": "the project id of the group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
+                    ]
                 }
             ]
         },
         {
-            "description": "upload an existing template into the CloudStack cloud. ",
-            "isasync": false,
             "name": "getUploadParamsForTemplate",
+            "description": "upload an existing template into the CloudStack cloud. ",
+            "since": "4.6.0",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the display text of the template. This is usually used for display purposes.",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template type is routing i.e., if template is used to deploy router",
-                    "length": 255,
-                    "name": "isrouting",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template is available to all accounts; default is true",
-                    "length": 255,
-                    "name": "ispublic",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template supports the password reset feature; default is false",
-                    "length": 255,
-                    "name": "passwordenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the volume/template",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the MD5 checksum value of this volume/template",
-                    "length": 255,
-                    "name": "checksum",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template supports the sshkey upload feature; default is false",
-                    "length": 255,
-                    "name": "sshkeyenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the OS Type that best represents the OS of this template.",
-                    "length": 255,
                     "name": "ostypeid",
-                    "related": "",
+                    "description": "the ID of the OS Type that best represents the OS of this template.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "32 or 64 bits support. 64 by default",
-                    "length": 255,
                     "name": "bits",
-                    "required": false,
-                    "type": "integer"
+                    "description": "32 or 64 bits support. 64 by default",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Template details in key/value pairs.",
+                    "name": "checksum",
+                    "description": "the checksum value of this volume/template The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{<algorithm>}\", not including the double quotes. In this <algorithm> is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.",
+                    "type": "string",
                     "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
+                    "required": false
                 },
                 {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "length": 255,
-                    "name": "isdynamicallyscalable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the zone the volume/template is to be hosted on",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,createZone",
+                    "description": "the ID of the zone the volume/template is to be hosted on",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createZone,listZones"
                 },
                 {
-                    "description": "true if this template is a featured template, false otherwise",
+                    "name": "isrouting",
+                    "description": "true if the template type is routing i.e., if template is used to deploy router",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "isfeatured",
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "listDomainChildren,listDomains"
                 },
                 {
-                    "description": "true if this template requires HVM",
+                    "name": "ispublic",
+                    "description": "true if the template is available to all accounts; default is true",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "requireshvm",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "the format for the volume/template. Possible values include QCOW2, OVA, and VHD.",
-                    "length": 255,
-                    "name": "format",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the target hypervisor for the template",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Upload volume/template for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if the template or its derivatives are extractable; default is false",
-                    "length": 255,
-                    "name": "isextractable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional accountName. Must be used with domainId.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "an optional accountName. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the tag for this template.",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "templatetag",
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the template. This is usually used for display purposes.",
+                    "type": "string",
+                    "length": 4096,
+                    "required": true
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the volume/template",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the template supports the password reset feature; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the target hypervisor for the template",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "projectid",
+                    "description": "Upload volume/template for the project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template or its derivatives are extractable; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "format",
+                    "description": "the format for the volume/template. Possible values include QCOW2, OVA, and VHD.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "details",
+                    "description": "Template details in key/value pairs.",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "templatetag",
+                    "description": "the tag for this template.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sshkeyenabled",
+                    "description": "true if the template supports the sshkey upload feature; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "requireshvm",
+                    "description": "true if this template requires HVM",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "POST url to upload the file to",
                     "name": "postURL",
+                    "description": "POST url to upload the file to",
                     "type": "url"
                 },
                 {
-                    "description": "signature to be sent in the POST request.",
-                    "name": "signature",
-                    "type": "string"
-                },
-                {
-                    "description": "encrypted data to be sent in the POST request.",
                     "name": "metadata",
+                    "description": "encrypted data to be sent in the POST request.",
                     "type": "string"
                 },
                 {
-                    "description": "the template/volume ID",
+                    "name": "signature",
+                    "description": "signature to be sent in the POST request.",
+                    "type": "string"
+                },
+                {
                     "name": "id",
+                    "description": "the template/volume ID",
                     "type": "uuid"
                 },
                 {
-                    "description": "the timestamp after which the signature expires",
                     "name": "expires",
+                    "description": "the timestamp after which the signature expires",
                     "type": "string"
                 }
-            ],
-            "since": "4.6.0"
+            ]
         },
         {
+            "name": "releaseDedicatedHost",
             "description": "Release the dedication for host",
             "isasync": true,
-            "name": "releaseDedicatedHost",
             "params": [
                 {
-                    "description": "the ID of the host",
-                    "length": 255,
                     "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost",
+                    "description": "the ID of the host",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addBaremetalHost,reconnectHost"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Accepts or declines project invitation",
-            "isasync": true,
             "name": "updateProjectInvitation",
+            "description": "Accepts or declines project invitation",
+            "since": "3.0.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "id of the project to join",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list invitations for specified account; this parameter has to be specified with domainId",
-                    "length": 255,
-                    "name": "token",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "account that is joining the project",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "if true, accept the invitation, decline if false. True by default",
-                    "length": 255,
                     "name": "accept",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "if true, accept the invitation, decline if false. True by default",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "account that is joining the project",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "id of the project to join",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "token",
+                    "description": "list invitations for specified account; this parameter has to be specified with domainId",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "revertSnapshot",
             "description": "This is supposed to revert a volume snapshot. This command is only supported with KVM so far",
             "isasync": true,
-            "name": "revertSnapshot",
+            "related": "",
             "params": [
                 {
-                    "description": "The ID of the snapshot",
-                    "length": 255,
                     "name": "id",
-                    "related": "revertSnapshot",
+                    "description": "The ID of the snapshot",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "revertSnapshot"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage",
-                    "name": "state",
-                    "type": "state"
-                },
-                {
-                    "description": "the domain name of the snapshot's account",
-                    "name": "domain",
+                    "name": "snapshottype",
+                    "description": "the type of the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the snapshot",
-                    "name": "account",
+                    "name": "volumename",
+                    "description": "name of the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the snapshot",
-                    "name": "project",
-                    "type": "string"
+                    "name": "tags",
+                    "description": "the list of resource tags associated with snapshot",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        }
+                    ]
                 },
                 {
-                    "description": "the project id of the snapshot",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume",
-                    "name": "volumetype",
-                    "type": "string"
-                },
-                {
-                    "description": "valid types are hourly, daily, weekly, monthy, template, and none.",
-                    "name": "intervaltype",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the snapshot",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "physical size of backedup snapshot on image store",
                     "name": "physicalsize",
+                    "description": "physical size of backedup snapshot on image store",
                     "type": "long"
                 },
                 {
-                    "description": "ID of the disk volume",
-                    "name": "volumeid",
+                    "name": "ostypeid",
+                    "description": "id of the os on volume",
                     "type": "string"
                 },
                 {
-                    "description": "  the date the snapshot was created",
+                    "name": "osdisplayname",
+                    "description": "display name of the os on volume",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the snapshot",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "  the date the snapshot was created",
                     "type": "date"
                 },
                 {
-                    "description": "id of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the snapshot's account",
                     "name": "domainid",
+                    "description": "the domain ID of the snapshot's account",
                     "type": "string"
                 },
                 {
-                    "description": "ID of the snapshot",
+                    "name": "name",
+                    "description": "name of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the snapshot's account",
+                    "type": "string"
+                },
+                {
+                    "name": "locationtype",
+                    "description": "valid location types are primary and secondary.",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "id of the availability zone",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetype",
+                    "description": "type of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeid",
+                    "description": "ID of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "intervaltype",
+                    "description": "valid types are hourly, daily, weekly, monthy, template, and none.",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage",
+                    "type": "state"
+                },
+                {
                     "name": "id",
+                    "description": "ID of the snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the type of the snapshot",
-                    "name": "snapshottype",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with snapshot",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "volumename",
-                    "type": "string"
-                },
-                {
-                    "description": "indicates whether the underlying storage supports reverting the volume to this snapshot",
                     "name": "revertable",
+                    "description": "indicates whether the underlying storage supports reverting the volume to this snapshot",
                     "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "virtual size of backedup snapshot on image store",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "listRegions",
             "description": "Lists Regions",
             "isasync": false,
-            "name": "listRegions",
+            "related": "addRegion",
             "params": [
                 {
-                    "description": "List Region by region ID.",
-                    "length": 255,
                     "name": "id",
-                    "required": false,
-                    "type": "integer"
+                    "description": "List Region by region ID.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List Region by region name.",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "List Region by region name.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "addRegion",
             "response": [
                 {
-                    "description": "true if security groups support is enabled, false otherwise",
-                    "name": "portableipserviceenabled",
+                    "name": "gslbserviceenabled",
+                    "description": "true if GSLB service is enabled in the region, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the region",
+                    "name": "portableipserviceenabled",
+                    "description": "true if security groups support is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "id",
+                    "description": "the ID of the region",
                     "type": "integer"
                 },
                 {
-                    "description": "the name of the region",
-                    "name": "name",
+                    "name": "endpoint",
+                    "description": "the end point of the region",
                     "type": "string"
                 },
                 {
-                    "description": "true if GSLB service is enabled in the region, false otherwise",
-                    "name": "gslbserviceenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the end point of the region",
-                    "name": "endpoint",
+                    "name": "name",
+                    "description": "the name of the region",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Configures an Internal Load Balancer element.",
-            "isasync": true,
-            "name": "configureInternalLoadBalancerElement",
-            "params": [
-                {
-                    "description": "Enables/Disables the Internal Load Balancer element",
-                    "length": 255,
-                    "name": "enabled",
-                    "required": true,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the internal lb provider",
-                    "length": 255,
-                    "name": "id",
-                    "related": "configureInternalLoadBalancerElement",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the physical network service provider id of the element",
-                    "name": "nspid",
-                    "type": "string"
-                },
-                {
-                    "description": "Enabled/Disabled the element",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the id of the internal load balancer element",
-                    "name": "id",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
+            "name": "migrateSystemVm",
             "description": "Attempts Migration of a system virtual machine to the host specified.",
             "isasync": true,
-            "name": "migrateSystemVm",
+            "related": "",
             "params": [
                 {
-                    "description": "destination Host ID to migrate VM to",
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost",
                     "required": true,
-                    "type": "uuid"
+                    "related": "migrateSystemVm"
                 },
                 {
-                    "description": "the ID of the virtual machine",
+                    "name": "hostid",
+                    "description": "destination Host ID to migrate VM to",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "migrateSystemVm",
                     "required": true,
-                    "type": "uuid"
+                    "related": "addBaremetalHost,reconnectHost"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the system VM",
                     "name": "id",
+                    "description": "the ID of the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name for the system VM",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the system VM",
                     "name": "networkdomain",
+                    "description": "the network domain for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the public IP address for the system VM",
-                    "name": "publicip",
+                    "name": "dns2",
+                    "description": "the second DNS for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the first DNS for the system VM",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the system VM",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the system vm",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the system VM",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the system VM",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the system VM",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private IP address for the system VM",
-                    "name": "privateip",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the system VM",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "the private netmask for the system VM",
-                    "name": "privatenetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of active console sessions for the console proxy system vm",
                     "name": "activeviewersessions",
+                    "description": "the number of active console sessions for the console proxy system vm",
                     "type": "integer"
                 },
                 {
-                    "description": "the link local netmask for the system vm",
-                    "name": "linklocalnetmask",
+                    "name": "zonename",
+                    "description": "the Zone name for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone ID for the system VM",
                     "name": "zoneid",
+                    "description": "the Zone ID for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the host ID for the system VM",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the system VM type",
-                    "name": "systemvmtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the private MAC address for the system VM",
                     "name": "privatemacaddress",
+                    "description": "the private MAC address for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the system VM was created",
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "privateip",
+                    "description": "the private IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobstatus",
+                    "description": "the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "integer"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the system VM",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date and time the system VM was created",
                     "type": "date"
                 },
                 {
-                    "description": "the state of the system VM",
-                    "name": "state",
+                    "name": "name",
+                    "description": "the name of the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway for the system VM",
                     "name": "gateway",
+                    "description": "the gateway for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the second DNS for the system VM",
-                    "name": "dns2",
+                    "name": "systemvmtype",
+                    "description": "the system VM type",
                     "type": "string"
                 },
                 {
-                    "description": "the public netmask for the system VM",
-                    "name": "publicnetmask",
+                    "name": "privatenetmask",
+                    "description": "the private netmask for the system VM",
                     "type": "string"
                 },
                 {
-                    "description": "the link local IP address for the system vm",
-                    "name": "linklocalip",
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the system VM",
                     "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the system vm",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "jobid",
+                    "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the system VM",
+                    "type": "string"
+                },
+                {
+                    "name": "guestvlan",
+                    "description": "guest vlan range",
+                    "type": "string"
+                },
+                {
+                    "name": "publicvlan",
+                    "description": "public vlan range",
+                    "type": "list"
                 }
             ]
         },
         {
+            "name": "listCounters",
             "description": "List the counters",
             "isasync": false,
-            "name": "listCounters",
+            "related": "createCounter",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Name of the counter.",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "ID of the Counter.",
-                    "length": 255,
                     "name": "id",
-                    "related": "createCounter,listCounters",
+                    "description": "ID of the Counter.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listCounters,createCounter"
                 },
                 {
-                    "description": "Source of the counter.",
+                    "name": "name",
+                    "description": "Name of the counter.",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "source",
-                    "required": false,
-                    "type": "string"
+                    "description": "Source of the counter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "createCounter",
             "response": [
                 {
-                    "description": "the id of the Counter",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "Value in case of snmp or other specific counters.",
                     "name": "value",
+                    "description": "Value in case of snmp or other specific counters.",
                     "type": "string"
                 },
                 {
-                    "description": "Source of the counter.",
-                    "name": "source",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of counter",
                     "name": "zoneid",
+                    "description": "zone id of counter",
                     "type": "string"
                 },
                 {
-                    "description": "Name of the counter.",
                     "name": "name",
+                    "description": "Name of the counter.",
+                    "type": "string"
+                },
+                {
+                    "name": "source",
+                    "description": "Source of the counter.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the Counter",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "configureInternalLoadBalancerElement",
+            "description": "Configures an Internal Load Balancer element.",
+            "since": "4.2.0",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "enabled",
+                    "description": "Enables/Disables the Internal Load Balancer element",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the internal lb provider",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "configureInternalLoadBalancerElement"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the id of the internal load balancer element",
+                    "type": "string"
+                },
+                {
+                    "name": "nspid",
+                    "description": "the physical network service provider id of the element",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "Enabled/Disabled the element",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listVirtualRouterElements",
             "description": "Lists all available virtual router elements.",
             "isasync": false,
-            "name": "listVirtualRouterElements",
+            "related": "",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list network offerings by enabled state",
-                    "length": 255,
-                    "name": "enabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list virtual router elements by network service provider id",
-                    "length": 255,
-                    "name": "nspid",
-                    "related": "listNetworkServiceProviders",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list virtual router elements by id",
-                    "length": 255,
                     "name": "id",
-                    "related": "listVirtualRouterElements",
+                    "description": "list virtual router elements by id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listVirtualRouterElements"
+                },
+                {
+                    "name": "enabled",
+                    "description": "list network offerings by enabled state",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "nspid",
+                    "description": "list virtual router elements by network service provider id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworkServiceProviders"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the domain associated with the provider",
-                    "name": "domain",
+                    "name": "account",
+                    "description": "the account associated with the provider",
                     "type": "string"
                 },
                 {
-                    "description": "Enabled/Disabled the service provider",
+                    "name": "domain",
+                    "description": "the domain associated with the provider",
+                    "type": "string"
+                },
+                {
                     "name": "enabled",
+                    "description": "Enabled/Disabled the service provider",
                     "type": "boolean"
                 },
                 {
-                    "description": "the project name of the address",
                     "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the ipaddress",
                     "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the router",
                     "name": "id",
+                    "description": "the id of the router",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network service provider id of the provider",
-                    "name": "nspid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the provider",
                     "name": "domainid",
+                    "description": "the domain ID associated with the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the provider",
-                    "name": "account",
+                    "name": "nspid",
+                    "description": "the physical network service provider id of the provider",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteSnapshotPolicies",
             "description": "Deletes snapshot policies for the account.",
             "isasync": false,
-            "name": "deleteSnapshotPolicies",
             "params": [
                 {
-                    "description": "list of snapshots policy IDs separated by comma",
-                    "length": 255,
                     "name": "ids",
-                    "related": "updateSnapshotPolicy",
+                    "description": "list of snapshots policy IDs separated by comma",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "updateSnapshotPolicy"
                 },
                 {
+                    "name": "id",
                     "description": "the Id of the snapshot policy",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateSnapshotPolicy",
                     "required": false,
-                    "type": "uuid"
+                    "related": "updateSnapshotPolicy"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Lists implementors of implementor of a network traffic type or implementors of all network traffic types",
-            "isasync": false,
             "name": "listTrafficTypeImplementors",
+            "description": "Lists implementors of implementor of a network traffic type or implementors of all network traffic types",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "traffictype",
                     "description": "Optional. The network traffic type, if specified, return its implementor. Otherwise, return all traffic types with their implementor",
+                    "type": "string",
                     "length": 255,
-                    "name": "traffictype",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "implementor of network traffic type",
                     "name": "traffictypeimplementor",
+                    "description": "implementor of network traffic type",
                     "type": "string"
                 },
                 {
+                    "name": "traffictype",
                     "description": "network traffic type",
-                    "name": "traffictype",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Deletes an image store or Secondary Storage.",
-            "isasync": false,
-            "name": "deleteImageStore",
-            "params": [
-                {
-                    "description": "The image store ID or Secondary Storage ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addImageStoreS3,listSwifts,listImageStores",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "Lists autoscale vm profiles.",
-            "isasync": false,
-            "name": "listAutoScaleVmProfiles",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "availability zone for the auto deployed virtual machine",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the autoscale vm profile",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listAutoScaleVmProfiles,createAutoScaleVmProfile",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the templateid of the autoscale vm profile",
-                    "length": 255,
-                    "name": "templateid",
-                    "related": "registerTemplate,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list profiles by service offering id",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "updateServiceOffering,listServiceOfferings",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "uuid"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the otherdeployparameters of the autoscale vm profile",
-                    "length": 255,
-                    "name": "otherdeployparams",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "createAutoScaleVmProfile",
-            "response": [
-                {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-
-                },
-                {
-                    "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine",
-                    "name": "otherdeployparams",
-                    "type": "string"
-                },
-                {
-                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
-                    "name": "destroyvmgraceperiod",
-                    "type": "integer"
-                },
-                {
-                    "description": "the service offering to be used while deploying a virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the availability zone to be used while deploying a virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the user used to launch and destroy the VMs",
-                    "name": "autoscaleuserid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template to be used while deploying a virtual machine",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm profile",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale vm profile ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the vm profile",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id vm profile",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "is profile for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-
-                }
             ]
         },
         {
-            "description": "Disables out-of-band management for a host",
-            "isasync": true,
-            "name": "disableOutOfBandManagementForHost",
-            "params": [
-                {
-                    "description": "the ID of the host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
-            "response": [
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface powerState of the host",
-                    "name": "powerstate",
-                    "type": "powerstate"
-                },
-                {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface address",
-                    "name": "address",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface port",
-                    "name": "port",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": "Authorizes a particular ingress rule for this security group",
-            "isasync": true,
-            "name": "authorizeSecurityGroupIngress",
-            "params": [
-                {
-                    "description": "TCP is default. UDP is the other supported protocol",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The name of the security group. Mutually exclusive with securityGroupId parameter",
-                    "length": 255,
-                    "name": "securitygroupname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list associated",
-                    "length": 255,
-                    "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "length": 255,
-                    "name": "icmpcode",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "start port for this ingress rule",
-                    "length": 255,
-                    "name": "startport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "end port for this ingress rule",
-                    "length": 255,
-                    "name": "endport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional account for the security group. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter",
-                    "length": 255,
-                    "name": "securitygroupid",
-                    "related": "createSecurityGroup",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "length": 255,
-                    "name": "icmptype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "user to security group mapping",
-                    "length": 255,
-                    "name": "usersecuritygrouplist",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "an optional project of the security group",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
+            "name": "linkAccountToLdap",
+            "description": "link a cloudstack account to a group or OU in ldap",
+            "since": "4.11.0",
+            "isasync": false,
             "related": "",
-            "response": [
-                {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the protocol of the security group rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the ICMP message response",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "the starting IP of the security group rule",
-                    "name": "startport",
-                    "type": "integer"
-                },
-                {
-                    "description": "security group name",
-                    "name": "securitygroupname",
-                    "type": "string"
-                },
-                {
-                    "description": "account owning the security group rule",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the code for the ICMP message response",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ending IP of the security group rule ",
-                    "name": "endport",
-                    "type": "integer"
-                },
-                {
-                    "description": "the CIDR notation for the base IP address of the security group rule",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the security group rule",
-                    "name": "ruleid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Creates a security group",
-            "isasync": false,
-            "name": "createSecurityGroup",
             "params": [
                 {
-                    "description": "name of the security group",
+                    "name": "admin",
+                    "description": "domain admin username in LDAP ",
+                    "type": "string",
                     "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "an optional account for the security group. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the description of the security group",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Create security group for project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the project id of the group",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the security group",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the security group",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of ingress rules associated with the security group",
-                    "name": "ingressrule",
-                    "response": [
-                        {
-                            "description": "the protocol of the security group rule",
-                            "name": "protocol",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the code for the ICMP message response",
-                            "name": "icmpcode",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "account owning the security group rule",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the CIDR notation for the base IP address of the security group rule",
-                            "name": "cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the security group rule",
-                            "name": "ruleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the starting IP of the security group rule",
-                            "name": "startport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the ending IP of the security group rule ",
-                            "name": "endport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the type of the ICMP message response",
-                            "name": "icmptype",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "security group name",
-                            "name": "securitygroupname",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the domain ID of the security group",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of egress rules associated with the security group",
-                    "name": "egressrule",
-                    "response": [
-                        {
-                            "description": "the CIDR notation for the base IP address of the security group rule",
-                            "name": "cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the protocol of the security group rule",
-                            "name": "protocol",
-                            "type": "string"
-                        },
-                        {
-                            "description": "account owning the security group rule",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the id of the security group rule",
-                            "name": "ruleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the starting IP of the security group rule",
-                            "name": "startport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "security group name",
-                            "name": "securitygroupname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the ICMP message response",
-                            "name": "icmptype",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the code for the ICMP message response",
-                            "name": "icmpcode",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the ending IP of the security group rule ",
-                            "name": "endport",
-                            "type": "integer"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the name of the security group",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the security group",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of virtualmachine ids associated with this securitygroup",
-                    "name": "virtualmachineids",
-                    "type": "set"
-                },
-                {
-                    "description": "the project name of the group",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of virtualmachines associated with this securitygroup",
-                    "name": "virtualmachinecount",
-                    "type": "integer"
-                },
-                {
-                    "description": "the account owning the security group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                }
-            ]
-        },
-        {
-            "description": "Recalculate and update resource count for an account or domain.",
-            "isasync": false,
-            "name": "updateResourceCount",
-            "params": [
-                {
-                    "description": "Update resource count for a specified account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If account parameter specified then updates resource counts for a specified account in this domain else update resource counts for all accounts & child domains in specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Type of resource to update. If specifies valid values are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 and 11. If not specified will update all resource counts0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 5 - Project. Number of projects that a user can create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ",
-                    "length": 255,
-                    "name": "resourcetype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Update resource limits for project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "resource count",
-                    "name": "resourcecount",
-                    "type": "long"
-                },
-                {
-                    "description": "the account for which resource count's are updated",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "resource type. Values include 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.",
-                    "name": "resourcetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name for which resource count's are updated",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID for which resource count's are updated",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id for which resource count's are updated",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name for which resource count's are updated",
-                    "name": "project",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists site 2 site vpn gateways",
-            "isasync": false,
-            "name": "listVpnGateways",
-            "params": [
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "id of the vpn gateway",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listVpnGateways,createVpnGateway",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "id of vpc",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "createVpnGateway",
-            "response": [
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpc id of this gateway",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "is vpn gateway for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the public IP address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists dynamic roles in CloudStack",
-            "isasync": false,
-            "name": "listRoles",
-            "params": [
-                {
-                    "description": "List role by role type, valid options are: Admin, ResourceAdmin, DomainAdmin, User.",
-                    "length": 255,
                     "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List role by role ID.",
+                    "description": "type of the ldap name. GROUP or OU, defaults to GROUP",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "listRoles",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List role by role name.",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the description of the role",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "id",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": "Retrieves a cloud identifier.",
-            "isasync": false,
-            "name": "getCloudIdentifier",
-            "params": [
-                {
-                    "description": "the user ID for the cloud identifier",
-                    "length": 255,
-                    "name": "userid",
-                    "related": "enableUser,getUser,createUser",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the user ID for the cloud identifier",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cloud identifier",
-                    "name": "cloudidentifier",
-                    "type": "string"
-                },
-                {
-                    "description": "the signed response for the cloud identifier",
-                    "name": "signature",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Creates a load balancer stickiness policy ",
-            "isasync": true,
-            "name": "createLBStickinessPolicy",
-            "params": [
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "name of the load balancer stickiness policy method, possible values can be obtained from listNetworks API",
-                    "length": 255,
-                    "name": "methodname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of the load balancer stickiness policy",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "param list. Example: param[0].name=cookiename&param[0].value=LBCookie ",
-                    "length": 255,
-                    "name": "param",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the description of the load balancer stickiness policy",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "listLBStickinessPolicies",
-            "response": [
-                {
-                    "description": "the domain of the Stickiness policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Stickiness policy",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the zone the Stickiness policy belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the Stickiness policy",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the Stickiness policy",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the LB rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the Stickiness policy",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the policy",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of stickinesspolicies",
-                    "name": "stickinesspolicy",
-                    "response": [
-                        {
-                            "description": "the LB Stickiness policy ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the Stickiness policy",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the method name of the Stickiness policy",
-                            "name": "methodname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the policy",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the params of the policy",
-                            "name": "params",
-                            "type": "map"
-                        },
-                        {
-                            "description": "the description of the Stickiness policy",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "is policy for display to the regular user",
-                            "name": "fordisplay",
-                            "type": "boolean"
-                        }
-                    ],
-                    "type": "list"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Configures a Palo Alto firewall device",
-            "isasync": true,
-            "name": "configurePaloAltoFirewall",
-            "params": [
-                {
-                    "description": "capacity of the firewall device, Capacity will be interpreted as number of networks device can handle",
-                    "length": 255,
-                    "name": "fwdevicecapacity",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "Palo Alto firewall device ID",
-                    "length": 255,
-                    "name": "fwdeviceid",
-                    "related": "configurePaloAltoFirewall,listPaloAltoFirewalls,addPaloAltoFirewall",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listPaloAltoFirewalls,addPaloAltoFirewall",
-            "response": [
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "fwdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "device capacity",
-                    "name": "fwdevicecapacity",
-                    "type": "long"
-                },
-                {
-                    "description": "the private security zone of the external firewall",
-                    "name": "privatezone",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the Palo Alto firewall",
-                    "name": "fwdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this Palo Alto firewall belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "fwdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Adds a Cisco Asa 1000v appliance",
-            "isasync": false,
-            "name": "addCiscoAsa1000vResource",
-            "params": [
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Hostname or ip address of the Cisco ASA 1000v appliance.",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Nexus port profile associated with inside interface of ASA 1000v",
-                    "length": 255,
-                    "name": "insideportprofile",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Cluster ID",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                },
-                {
-
-                }
-            ]
-        },
-        {
-            "description": "Updates ACL item with specified ID",
-            "isasync": true,
-            "name": "updateNetworkACLItem",
-            "params": [
-                {
-                    "description": "error code for this ICMP message",
-                    "length": 255,
-                    "name": "icmpcode",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of ACL",
-                    "length": 255,
-                    "name": "startport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ending port of ACL",
-                    "length": 255,
-                    "name": "endport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "The network of the vm the ACL will be created for",
-                    "length": 255,
-                    "name": "number",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the network ACL item",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateNetworkACLItem",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the cidr list to allow traffic from/to",
-                    "length": 255,
-                    "name": "cidrlist",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "type of the ICMP message being sent",
-                    "length": 255,
-                    "name": "icmptype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the traffic type for the ACL,can be Ingress or Egress, defaulted to Ingress if not specified",
-                    "length": 255,
-                    "name": "traffictype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "scl entry action, allow or deny",
-                    "length": 255,
-                    "name": "action",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the ID of the ACL this item belongs to",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the ACL Item",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the network ACLs",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the starting port of ACL's port range",
-                    "name": "startport",
-                    "type": "string"
-                },
-                {
-                    "description": "the traffic type for the ACL",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of the ACL Item",
-                    "name": "number",
-                    "type": "integer"
-                },
-                {
-                    "description": "Action of ACL Item. Allow/Deny",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of ACL's port range",
-                    "name": "endport",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the ACL",
-                    "name": "protocol",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "List routers.",
-            "isasync": false,
-            "name": "listRouters",
-            "params": [
-                {
-                    "description": "the Zone ID of the router",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the Pod ID of the router",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the state of the router",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the disk router",
-                    "length": 255,
-                    "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the router",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID of the router",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "if true is passed for this parameter, list only VPC routers",
-                    "length": 255,
-                    "name": "forvpc",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list virtual router elements by version",
-                    "length": 255,
-                    "name": "version",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List networks by VPC",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "updateVPC,listVPCs,createVPC",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list by network id",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "updateNetwork,listBrocadeVcsDeviceNetworks,createNetwork,listNetworks,listF5LoadBalancerNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster ID of the router",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "destroyRouter",
-            "response": [
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the router",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the second IPv6 DNS for the router",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with the router",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the corresponding link local network",
-                    "name": "linklocalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the router template requires upgrader",
-                    "name": "requiresupgrade",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the version of template",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
-                    "name": "scriptsversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the router",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local IP address for the router",
-                    "name": "linklocalip",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the router",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the router",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the router",
-                    "name": "state",
-                    "type": "state"
-                },
-                {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding guest network",
-                    "name": "guestnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the router was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the router belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Releases host reservation.",
-            "isasync": true,
-            "name": "releaseHostReservation",
-            "params": [
-                {
-                    "description": "the host ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "addBaremetalHost,reconnectHost",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Create site to site vpn connection",
-            "isasync": true,
-            "name": "createVpnConnection",
-            "params": [
-                {
-                    "description": "id of the customer gateway",
-                    "length": 255,
-                    "name": "s2scustomergatewayid",
-                    "related": "createVpnCustomerGateway",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, whether to the display the vpn to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "id of the vpn gateway",
-                    "length": 255,
-                    "name": "s2svpngatewayid",
-                    "related": "createVpnGateway",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "connection is passive or not",
-                    "length": 255,
-                    "name": "passive",
-                    "required": false,
-                    "type": "boolean"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "if DPD is enabled for customer gateway",
-                    "name": "dpd",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the connection ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "passive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the public IP address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the customer gateway ID",
-                    "name": "s2scustomergatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "is connection for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "guest cidr list of the customer gateway",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of IKE SA of customer gateway",
-                    "name": "ikelifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "IKE policy of the customer gateway",
-                    "name": "ikepolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "public ip address id of the customer gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of ESP SA of customer gateway",
-                    "name": "esplifetime",
-                    "type": "long"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "s2svpngatewayid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
-                    "name": "forceencap",
-                    "type": "boolean"
-                },
-                {
-                    "description": "IPsec Preshared-Key of the customer gateway",
-                    "name": "ipsecpsk",
-                    "type": "string"
-                },
-                {
-                    "description": "ESP policy of the customer gateway",
-                    "name": "esppolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "State of vpn connection",
-                    "name": "state",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "lists network that are using a brocade vcs switch",
-            "isasync": false,
-            "name": "listBrocadeVcsDeviceNetworks",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "brocade vcs switch ID",
-                    "length": 255,
-                    "name": "vcsdeviceid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "updateNetwork,createNetwork,listNetworks,listF5LoadBalancerNetworks",
-            "response": [
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
-                    "name": "subdomainaccess",
-                    "type": "boolean"
-                },
-                {
-                    "description": "zone id of the network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the network belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's netmask",
-                    "name": "netmask",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the network belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "related to what other network configuration",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
-                    "type": "boolean"
-                },
-                {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                    "name": "zonesnetworkspans",
-                    "type": "set"
-                },
-                {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a Physical Network.",
-            "isasync": true,
-            "name": "deletePhysicalNetwork",
-            "params": [
-                {
-                    "description": "the ID of the Physical network",
-                    "length": 255,
-                    "name": "id",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Dedicates a host.",
-            "isasync": true,
-            "name": "dedicateHost",
-            "params": [
-                {
-                    "description": "the name of the account which needs dedication. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the containing domain",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the host to update",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listDedicatedHosts",
-            "response": [
-                {
-                    "description": "the Dedication Affinity Group ID of the host",
-                    "name": "affinitygroupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Account ID of the host",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the host",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the dedicated resource",
-                    "name": "id",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Removes vpn user",
-            "isasync": true,
-            "name": "removeVpnUser",
-            "params": [
-                {
-                    "description": "remove vpn user from the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional account for the vpn user. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "username for the vpn user",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Adds the GloboDNS external host",
-            "isasync": true,
-            "name": "addGloboDnsHost",
-            "params": [
-                {
-                    "description": "GloboDNS url",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Password for GloboDNS",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Username for GloboDNS",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ],
-            "since": "4.5.0"
-        },
-        {
-            "description": "Logs out the user",
-            "isasync": false,
-            "name": "logout",
-            "params": [
-
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "Response description",
-                    "name": "description",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a load balancer health check policy.",
-            "isasync": true,
-            "name": "deleteLBHealthCheckPolicy",
-            "params": [
-                {
-                    "description": "the ID of the load balancer health check policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.2.0"
-        },
-        {
-            "description": "List Swift.",
-            "isasync": false,
-            "name": "listSwifts",
-            "params": [
-                {
-                    "description": "the id of the swift",
-                    "length": 255,
-                    "name": "id",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "addImageStoreS3,listImageStores",
-            "response": [
-                {
-                    "description": "the Zone ID of the image store",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the image store",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the image store",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the image store",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the provider name of the image store",
-                    "name": "providername",
-                    "type": "string"
-                },
-                {
-                    "description": "the scope of the image store",
-                    "name": "scope",
-                    "type": "scopetype"
-                },
-                {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
-                },
-                {
-                    "description": "the name of the image store",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Enables out-of-band management for a host",
-            "isasync": true,
-            "name": "enableOutOfBandManagementForHost",
-            "params": [
-                {
-                    "description": "the ID of the host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "disableOutOfBandManagementForCluster",
-            "response": [
-                {
-                    "description": "the out-of-band management interface address",
-                    "name": "address",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
-                    "name": "enabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface username",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface powerState of the host",
-                    "name": "powerstate",
-                    "type": "powerstate"
-                },
-                {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface port",
-                    "name": "port",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": "Deletes a service offering.",
-            "isasync": false,
-            "name": "deleteServiceOffering",
-            "params": [
-                {
-                    "description": "the ID of the service offering",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateServiceOffering,listServiceOfferings",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "Adds a Nicira NVP device",
-            "isasync": true,
-            "name": "addNiciraNvpDevice",
-            "params": [
-                {
-                    "description": "The L2 Gateway Service UUID configured on the Nicira Controller",
-                    "length": 255,
-                    "name": "l2gatewayserviceuuid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Credentials to access the Nicira Controller API",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The Transportzone UUID configured on the Nicira Controller",
-                    "length": 255,
-                    "name": "transportzoneuuid",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The L3 Gateway Service UUID configured on the Nicira Controller",
-                    "length": 255,
-                    "name": "l3gatewayserviceuuid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Hostname of ip address of the Nicira NVP Controller.",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to access the Nicira Controller API",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "this L2 gateway service Uuid",
-                    "name": "l2gatewayserviceuuid",
-                    "type": "string"
-                },
-                {
-                    "description": "the controller Ip address",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "niciradevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this Nirica Nvp belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the Nicire Nvp",
-                    "name": "nvpdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the transport zone Uuid",
-                    "name": "transportzoneuuid",
-                    "type": "string"
-                },
-                {
-                    "description": "this L3 gateway service Uuid",
-                    "name": "l3gatewayserviceuuid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Adds a F5 BigIP load balancer device",
-            "isasync": true,
-            "name": "addF5LoadBalancer",
-            "params": [
-                {
-                    "description": "Credentials to reach F5 BigIP load balancer device",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "URL of the F5 load balancer appliance.",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Credentials to reach F5 BigIP load balancer device",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "supports only F5BigIpLoadBalancer",
-                    "length": 255,
-                    "name": "networkdevicetype",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "device capacity",
-                    "name": "lbdevicecapacity",
-                    "type": "long"
-                },
-                {
-                    "description": "the private interface of the load balancer",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "lbdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "lbdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the load balancer",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this F5 device belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if device is dedicated for an account",
-                    "name": "lbdevicededicated",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the management IP address of the external load balancer",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the F5 load balancer",
-                    "name": "lbdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists network serviceproviders for a given physical network.",
-            "isasync": false,
-            "name": "listNetworkServiceProviders",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list providers by state",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list providers by name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the destination physical network",
-                    "name": "destinationphysicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "services for this provider",
-                    "name": "servicelist",
-                    "type": "list"
-                },
-                {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if individual services can be enabled/disabled",
-                    "name": "canenableindividualservice",
-                    "type": "boolean"
-                },
-                {
-                    "description": "uuid of the network provider",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network provider",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the provider name",
-                    "name": "name",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
-            "description": "Lists infrastructure",
-            "isasync": false,
-            "name": "listInfrastructure",
-            "params": [
-
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "Number of systemvms",
-                    "name": "systemvms",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of storage pools",
-                    "name": "storagepools",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of hypervisor hosts",
-                    "name": "hosts",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of routers",
-                    "name": "routers",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of pods",
-                    "name": "pods",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of images stores",
-                    "name": "imagestores",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of zones",
-                    "name": "zones",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of cpu sockets",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "Number of clusters",
-                    "name": "clusters",
-                    "type": "integer"
-                }
-            ],
-            "since": "4.9.3"
-        },
-        {
-            "description": "Lists usage records for accounts",
-            "isasync": false,
-            "name": "listUsageRecords",
-            "params": [
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List usage records for the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List usage records for specified project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "suspendProject,activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Start date range for usage record query (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\", e.g. startDate=2015-01-01 or startdate=2015-01-01 11:00:00).",
-                    "length": 255,
-                    "name": "startdate",
-                    "required": true,
-                    "type": "date"
-                },
-                {
-                    "description": "List usage records for the specified usage type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "List usage records for the specified account",
-                    "length": 255,
-                    "name": "accountid",
-                    "related": "listAccounts,listAccounts,enableAccount",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "End date range for usage record query (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\", e.g. startDate=2015-01-01 or startdate=2015-01-01 10:30:00).",
-                    "length": 255,
-                    "name": "enddate",
-                    "required": true,
-                    "type": "date"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List usage records for the specified usage UUID. Can be used only together with TYPE parameter.",
-                    "length": 255,
-                    "name": "usageid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List usage records for the specified user.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the user account Id",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "description of the usage record",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "speed of each cpu of resource",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "the project name of the resource",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "offering ID",
-                    "name": "offeringid",
-                    "type": "string"
-                },
-                {
-                    "description": "start date of the usage record",
-                    "name": "startdate",
-                    "type": "string"
-                },
-                {
-                    "description": "True if the resource is default",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain the resource is associated with",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "template ID",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user account name",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the resource",
-                    "name": "usageid",
-                    "type": "string"
-                },
-                {
-                    "description": "memory allocated for the resource",
-                    "name": "memory",
-                    "type": "long"
-                },
-                {
-                    "description": "id of the network",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "virtual machine ID",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the resource",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "resource size",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "usage in hours",
-                    "name": "usage",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the zone ID",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "virtual machine name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "virtual size of resource",
-                    "name": "virtualsize",
-                    "type": "long"
-                },
-                {
-                    "description": "resource type",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "number of cpu of resource",
-                    "name": "cpunumber",
-                    "type": "long"
-                },
-                {
-                    "description": "True if the IPAddress is system IP - allocated during vm deploy or lb rule create",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "end date of the usage record",
-                    "name": "enddate",
-                    "type": "string"
-                },
-                {
-                    "description": "usage type ID",
-                    "name": "usagetype",
-                    "type": "integer"
-                },
-                {
-                    "description": "True if the IPAddress is source NAT",
-                    "name": "issourcenat",
-                    "type": "boolean"
-                },
-                {
-                    "description": "raw usage in hours",
-                    "name": "rawusage",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a detached disk volume.",
-            "isasync": false,
-            "name": "deleteVolume",
-            "params": [
-                {
-                    "description": "The ID of the disk volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Enables a user account",
-            "isasync": false,
-            "name": "enableUser",
-            "params": [
-                {
-                    "description": "Enables user by user ID.",
-                    "length": 255,
-                    "name": "id",
-                    "related": "enableUser,getUser,createUser",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "getUser,createUser",
-            "response": [
-                {
-                    "description": "the api key of the user",
-                    "name": "apikey",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the user",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the user",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the timezone user was created in",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the user ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the user lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the user account was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the secret key of the user",
-                    "name": "secretkey",
-                    "type": "string"
-                },
-                {
-                    "description": "true if user is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account ID of the user",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user name",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the user",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the boolean value representing if the updating target is in caller's child domain",
-                    "name": "iscallerchilddomain",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the user email address",
-                    "name": "email",
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "the account type of the user",
                     "name": "accounttype",
+                    "description": "Type of the account to auto import. Specify 0 for user and 2 for domain admin",
+                    "type": "short",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "ldapdomain",
+                    "description": "name of the group or OU in LDAP",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "account",
+                    "description": "name of the account, it will be created if it does not exist",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "The id of the domain that is to contain the linked account.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDomainChildren,listDomains"
+                }
+            ],
+            "response": [
+                {
+                    "name": "accountid",
+                    "description": "Domain Admin accountId that is created",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the group or OU in LDAP which is linked to the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the name in LDAP which is linke to the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "Type of the account to auto import",
                     "type": "short"
                 },
                 {
-                    "description": "the type of the role",
-                    "name": "roletype",
+                    "name": "domainid",
+                    "description": "id of the Domain which is linked to LDAP",
                     "type": "string"
                 },
                 {
-                    "description": "the user state",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the user firstname",
-                    "name": "firstname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
+                    "name": "ldapdomain",
+                    "description": "name of the group or OU in LDAP which is linked to the domain",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists zone metrics",
+            "name": "deleteImageStore",
+            "description": "Deletes an image store or Secondary Storage.",
+            "since": "4.2.0",
             "isasync": false,
-            "name": "listZonesMetrics",
             "params": [
                 {
-                    "description": "the network type of the zone that the virtual machine belongs to",
-                    "length": 255,
-                    "name": "networktype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone",
-                    "length": 255,
                     "name": "id",
-                    "related": "listZones,createZone",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the domain associated with the zone",
+                    "description": "The image store ID or Secondary Storage ID.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "flag to display the capacity of the zones",
-                    "length": 255,
-                    "name": "showcapacities",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "List zones by resource tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "since": "4.3",
-                    "type": "map"
-                },
-                {
-                    "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.",
-                    "length": 255,
-                    "name": "available",
-                    "required": false,
-                    "type": "boolean"
+                    "required": true,
+                    "related": "listSwifts,addImageStoreS3,listImageStores"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the total cpu allocated in Ghz",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the maximum memory deviation",
-                    "name": "memorymaxdeviation",
-                    "type": "string"
-                },
-                {
-                    "description": "memory allocated disable threshold exceeded",
-                    "name": "memoryallocateddisablethreshold",
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "cpu allocated notification threshold exceeded",
-                    "name": "cpuallocatedthreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "cpu allocated disable threshold exceeded",
-                    "name": "cpuallocateddisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the maximum cpu deviation",
-                    "name": "cpumaxdeviation",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
-                },
-                {
-                    "description": "healthy / total clusters in the zone",
-                    "name": "clusters",
-                    "type": "string"
-                },
-                {
-                    "description": "the total cpu capacity in GiB",
-                    "name": "memorytotal",
-                    "type": "string"
-                },
-                {
-                    "description": "memory usage notification threshold exceeded",
-                    "name": "memorythreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "state of the cluster",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "memory allocated notification threshold exceeded",
-                    "name": "memoryallocatedthreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total cpu capacity in Ghz",
-                    "name": "cputotal",
-                    "type": "string"
-                },
-                {
-                    "description": "the total cpu used in Ghz",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "cpu usage disable threshold exceeded",
-                    "name": "cpudisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total cpu allocated in GiB",
-                    "name": "memoryallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "memory usage disable threshold exceeded",
-                    "name": "memorydisablethreshold",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total cpu used in GiB",
-                    "name": "memoryused",
-                    "type": "string"
-                },
-                {
-                    "description": "cpu usage notification threshold exceeded",
-                    "name": "cputhreshold",
-                    "type": "boolean"
                 }
-            ],
-            "since": "4.9.3"
+            ]
         },
         {
+            "name": "listAutoScaleVmProfiles",
+            "description": "Lists autoscale vm profiles.",
+            "isasync": false,
+            "related": "createAutoScaleVmProfile",
+            "params": [
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "templateid",
+                    "description": "the templateid of the autoscale vm profile",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "availability zone for the auto deployed virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4",
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the autoscale vm profile",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAutoScaleVmProfiles,createAutoScaleVmProfile"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "otherdeployparams",
+                    "description": "the otherdeployparameters of the autoscale vm profile",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "list profiles by service offering id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4",
+                    "related": "updateServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "project",
+                    "description": "the project name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "destroyvmgraceperiod",
+                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
+                    "type": "integer"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the service offering to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "otherdeployparams",
+                    "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the availability zone to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is profile for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
+                    "type": "string"
+                },
+                {
+
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "autoscaleuserid",
+                    "description": "the ID of the user used to launch and destroy the VMs",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale vm profile ID",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "disableOutOfBandManagementForHost",
+            "description": "Disables out-of-band management for a host",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "disableOutOfBandManagementForCluster,enableOutOfBandManagementForHost",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "port",
+                    "description": "the out-of-band management interface port",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
+                },
+                {
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
+                    "type": "string"
+                },
+                {
+                    "name": "address",
+                    "description": "the out-of-band management interface address",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
+                    "type": "string"
+                },
+                {
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
+                    "type": "powerstate"
+                },
+                {
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "authorizeSecurityGroupIngress",
+            "description": "Authorizes a particular ingress rule for this security group",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "securitygroupid",
+                    "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createSecurityGroup"
+                },
+                {
+                    "name": "projectid",
+                    "description": "an optional project of the security group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "startport",
+                    "description": "start port for this ingress rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list associated",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account for the security group. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "endport",
+                    "description": "end port for this ingress rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "securitygroupname",
+                    "description": "The name of the security group. Mutually exclusive with securityGroupId parameter",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "protocol",
+                    "description": "TCP is default. UDP is the other supported protocol",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "usersecuritygrouplist",
+                    "description": "user to security group mapping",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "icmpcode",
+                    "description": "the code for the ICMP message response",
+                    "type": "integer"
+                },
+                {
+                    "name": "securitygroupname",
+                    "description": "security group name",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "ruleid",
+                    "description": "the id of the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "the type of the ICMP message response",
+                    "type": "integer"
+                },
+                {
+                    "name": "cidr",
+                    "description": "the CIDR notation for the base IP address of the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "account owning the security group rule",
+                    "type": "string"
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting IP of the security group rule",
+                    "type": "integer"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending IP of the security group rule ",
+                    "type": "integer"
+                }
+            ]
+        },
+        {
+            "name": "createSecurityGroup",
+            "description": "Creates a security group",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "name of the security group",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the security group",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account for the security group. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "Create security group for project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain name of the security group",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the security group",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the group",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinecount",
+                    "description": "the number of virtualmachines associated with this securitygroup",
+                    "type": "integer"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the security group",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the security group",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineids",
+                    "description": "the list of virtualmachine ids associated with this securitygroup",
+                    "type": "set"
+                },
+                {
+                    "name": "egressrule",
+                    "description": "the list of egress rules associated with the security group",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "securitygroupname",
+                            "description": "security group name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "the CIDR notation for the base IP address of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "icmptype",
+                            "description": "the type of the ICMP message response",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "ruleid",
+                            "description": "the id of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "account owning the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "icmpcode",
+                            "description": "the code for the ICMP message response",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "startport",
+                            "description": "the starting IP of the security group rule",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "protocol",
+                            "description": "the protocol of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "endport",
+                            "description": "the ending IP of the security group rule ",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the security group",
+                    "type": "string"
+                },
+                {
+                    "name": "ingressrule",
+                    "description": "the list of ingress rules associated with the security group",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "account",
+                            "description": "account owning the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ruleid",
+                            "description": "the id of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "icmpcode",
+                            "description": "the code for the ICMP message response",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "startport",
+                            "description": "the starting IP of the security group rule",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "protocol",
+                            "description": "the protocol of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "icmptype",
+                            "description": "the type of the ICMP message response",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "endport",
+                            "description": "the ending IP of the security group rule ",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "securitygroupname",
+                            "description": "security group name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cidr",
+                            "description": "the CIDR notation for the base IP address of the security group rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the group",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the security group",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listVpnGateways",
+            "description": "Lists site 2 site vpn gateways",
+            "isasync": false,
+            "related": "createVpnGateway",
+            "params": [
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "id of vpc",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "id of the vpn gateway",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listVpnGateways,createVpnGateway"
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "publicip",
+                    "description": "the public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "the vpc id of this gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpn gateway for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "id",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateResourceCount",
+            "description": "Recalculate and update resource count for an account or domain.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "account",
+                    "description": "Update resource count for a specified account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "If account parameter specified then updates resource counts for a specified account in this domain else update resource counts for all accounts & child domains in specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "Type of resource to update. If specifies valid values are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 and 11. If not specified will update all resource counts0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 5 - Project. Number of projects that a user can create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "Update resource limits for project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                }
+            ],
+            "response": [
+                {
+                    "name": "resourcecount",
+                    "description": "resource count",
+                    "type": "long"
+                },
+                {
+                    "name": "account",
+                    "description": "the account for which resource count's are updated",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "resource type. Values include 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.",
+                    "type": "string"
+                },
+                {
+                    "name": "resourcetypename",
+                    "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name for which resource count's are updated",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name for which resource count's are updated",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id for which resource count's are updated",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID for which resource count's are updated",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listRoles",
+            "description": "Lists dynamic roles in CloudStack",
+            "since": "4.9.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "type",
+                    "description": "List role by role type, valid options are: Admin, ResourceAdmin, DomainAdmin, User.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "List role by role name.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "List role by role ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listRoles"
+                }
+            ],
+            "response": [
+                {
+                    "name": "id",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the role",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "associateNuageVspDomainTemplate",
+            "description": "associate a vpc with a domain template",
+            "since": "4.11.0",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "domaintemplate",
+                    "description": "the name of the domain template",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "getCloudIdentifier",
+            "description": "Retrieves a cloud identifier.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "userid",
+                    "description": "the user ID for the cloud identifier",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "enableUser,getUser,createUser"
+                }
+            ],
+            "response": [
+                {
+                    "name": "cloudidentifier",
+                    "description": "the cloud identifier",
+                    "type": "string"
+                },
+                {
+                    "name": "signature",
+                    "description": "the signed response for the cloud identifier",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user ID for the cloud identifier",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createLBStickinessPolicy",
+            "description": "Creates a load balancer stickiness policy ",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "listLBStickinessPolicies",
+            "params": [
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "name",
+                    "description": "name of the load balancer stickiness policy",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer stickiness policy",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "methodname",
+                    "description": "name of the load balancer stickiness policy method, possible values can be obtained from listNetworks API",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "param",
+                    "description": "param list. Example: param[0].name=cookiename&param[0].value=LBCookie ",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the policy",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the LB rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "stickinesspolicy",
+                    "description": "the list of stickinesspolicies",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the LB Stickiness policy ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the Stickiness policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "methodname",
+                            "description": "the method name of the Stickiness policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the Stickiness policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "params",
+                            "description": "the params of the policy",
+                            "type": "map"
+                        },
+                        {
+                            "name": "fordisplay",
+                            "description": "is policy for display to the regular user",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the Stickiness policy belongs to",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "configurePaloAltoFirewall",
+            "description": "Configures a Palo Alto firewall device",
+            "isasync": true,
+            "related": "addPaloAltoFirewall,listPaloAltoFirewalls",
+            "params": [
+                {
+                    "name": "fwdeviceid",
+                    "description": "Palo Alto firewall device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addPaloAltoFirewall,configurePaloAltoFirewall,listPaloAltoFirewalls"
+                },
+                {
+                    "name": "fwdevicecapacity",
+                    "description": "capacity of the firewall device, Capacity will be interpreted as number of networks device can handle",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "fwdeviceid",
+                    "description": "device id of the Palo Alto firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the username that's used to log in to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "privateinterface",
+                    "description": "the private interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "usageinterface",
+                    "description": "the usage interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "privatezone",
+                    "description": "the private security zone of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "timeout",
+                    "description": "the timeout (in seconds) for requests to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdevicename",
+                    "description": "device name",
+                    "type": "string"
+                },
+                {
+                    "name": "numretries",
+                    "description": "the number of times to retry requests to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "publiczone",
+                    "description": "the public security zone of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdevicestate",
+                    "description": "device state",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdevicecapacity",
+                    "description": "device capacity",
+                    "type": "long"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this Palo Alto firewall belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "publicinterface",
+                    "description": "the public interface of the external firewall",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateNetworkACLItem",
+            "description": "Updates ACL item with specified ID",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the network ACL item",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateNetworkACLItem"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of ACL",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "number",
+                    "description": "The network of the vm the ACL will be created for",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "action",
+                    "description": "scl entry action, allow or deny",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the ACL,can be Ingress or Egress, defaulted to Ingress if not specified",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of ACL",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this ICMP message",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the ICMP message being sent",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to allow traffic from/to",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the ACL",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "Action of ACL Item. Allow/Deny",
+                    "type": "string"
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of ACL's port range",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "aclid",
+                    "description": "the ID of the ACL this item belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type for the ACL",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of ACL's port range",
+                    "type": "string"
+                },
+                {
+                    "name": "number",
+                    "description": "Number of the ACL Item",
+                    "type": "integer"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the network ACLs",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the ACL Item",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "moveUser",
+            "description": "Moves a user to another account",
+            "since": "4.11",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "account",
+                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "id of the user to be deleted",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "enableUser,getUser,createUser"
+                },
+                {
+                    "name": "accountid",
+                    "description": "Creates the user under the specified domain. Has to be accompanied with the account parameter",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAccounts,enableAccount,listAccounts"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listRouters",
+            "description": "List routers.",
+            "isasync": false,
+            "related": "destroyRouter",
+            "params": [
+                {
+                    "name": "version",
+                    "description": "list virtual router elements by version",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID of the router",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addBaremetalHost,reconnectHost"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the router",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the router",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the disk router",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "List networks by VPC",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the router",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "forvpc",
+                    "description": "if true is passed for this parameter, list only VPC routers",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID of the router",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster"
+                },
+                {
+                    "name": "networkid",
+                    "description": "list by network id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,listBrocadeVcsDeviceNetworks,updateNetwork,createNetwork,migrateNetwork"
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the router",
+                    "type": "state"
+                },
+                {
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalip",
+                    "description": "the link local IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the router was created",
+                    "type": "date"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "releaseHostReservation",
+            "description": "Releases host reservation.",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "createVpnConnection",
+            "description": "Create site to site vpn connection",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "passive",
+                    "description": "connection is passive or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "s2svpngatewayid",
+                    "description": "id of the vpn gateway",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createVpnGateway"
+                },
+                {
+                    "name": "s2scustomergatewayid",
+                    "description": "id of the customer gateway",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createVpnCustomerGateway"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "dpd",
+                    "description": "if DPD is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "s2svpngatewayid",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "forceencap",
+                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the connection ID",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "esplifetime",
+                    "description": "Lifetime of ESP SA of customer gateway",
+                    "type": "long"
+                },
+                {
+                    "name": "passive",
+                    "description": "State of vpn connection",
+                    "type": "boolean"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "s2scustomergatewayid",
+                    "description": "the customer gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "ikelifetime",
+                    "description": "Lifetime of IKE SA of customer gateway",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "ikepolicy",
+                    "description": "IKE policy of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "ipsecpsk",
+                    "description": "IPsec Preshared-Key of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is connection for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "State of vpn connection",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
+                    "name": "esppolicy",
+                    "description": "ESP policy of the customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listBrocadeVcsDeviceNetworks",
+            "description": "lists network that are using a brocade vcs switch",
+            "isasync": false,
+            "related": "listNetworks,updateNetwork,createNetwork,migrateNetwork",
+            "params": [
+                {
+                    "name": "vcsdeviceid",
+                    "description": "brocade vcs switch ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "externalid",
+                    "description": "The external id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "related",
+                    "description": "related to what other network configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the network's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                    "type": "set"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the network's gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
+                    "type": "boolean"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the network",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deletePhysicalNetwork",
+            "description": "Deletes a Physical Network.",
+            "since": "3.0.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the Physical network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "dedicateHost",
+            "description": "Dedicates a host.",
+            "isasync": true,
+            "related": "listDedicatedHosts",
+            "params": [
+                {
+                    "name": "domainid",
+                    "description": "the ID of the containing domain",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host to update",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                },
+                {
+                    "name": "account",
+                    "description": "the name of the account which needs dedication. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "accountid",
+                    "description": "the Account ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the dedicated resource",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the host",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "removeVpnUser",
+            "description": "Removes vpn user",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "projectid",
+                    "description": "remove vpn user from the project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "account",
+                    "description": "an optional account for the vpn user. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "username",
+                    "description": "username for the vpn user",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addGloboDnsHost",
+            "description": "Adds the GloboDNS external host",
+            "since": "4.5.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "password",
+                    "description": "Password for GloboDNS",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "Username for GloboDNS",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "url",
+                    "description": "GloboDNS url",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "logout",
+            "description": "Logs out the user",
+            "isasync": false,
+            "related": "",
+            "params": [
+
+            ],
+            "response": [
+                {
+                    "name": "description",
+                    "description": "Response description",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteLBHealthCheckPolicy",
+            "description": "Deletes a load balancer health check policy.",
+            "since": "4.2.0",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the load balancer health check policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listSwifts",
+            "description": "List Swift.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "addImageStoreS3,listImageStores",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the swift",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "scope",
+                    "description": "the scope of the image store",
+                    "type": "scopetype"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "providername",
+                    "description": "the provider name of the image store",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "disableHAForHost",
+            "description": "Disables HA for a host",
+            "since": "4.11",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "haprovider",
+                    "description": "the host HA provider",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "operation status",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "if host HA is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hastate",
+                    "description": "the HA state of the host",
+                    "type": "hastate"
+                }
+            ]
+        },
+        {
+            "name": "enableOutOfBandManagementForHost",
+            "description": "Enables out-of-band management for a host",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "disableOutOfBandManagementForCluster",
+            "params": [
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                }
+            ],
+            "response": [
+                {
+                    "name": "address",
+                    "description": "the out-of-band management interface address",
+                    "type": "string"
+                },
+                {
+                    "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
+                    "type": "boolean"
+                },
+                {
+                    "name": "username",
+                    "description": "the out-of-band management interface username",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
+                    "type": "powerstate"
+                },
+                {
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
+                    "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "the out-of-band management interface port",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "deleteServiceOffering",
+            "description": "Deletes a service offering.",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the service offering",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering,listServiceOfferings"
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "addNiciraNvpDevice",
+            "description": "Adds a Nicira NVP device",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "transportzoneuuid",
+                    "description": "The Transportzone UUID configured on the Nicira Controller",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "hostname",
+                    "description": "Hostname of ip address of the Nicira NVP Controller.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "l2gatewayserviceuuid",
+                    "description": "The L2 Gateway Service UUID configured on the Nicira Controller",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "l3gatewayserviceuuid",
+                    "description": "The L3 Gateway Service UUID configured on the Nicira Controller",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "username",
+                    "description": "Credentials to access the Nicira Controller API",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "password",
+                    "description": "Credentials to access the Nicira Controller API",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "transportzoneuuid",
+                    "description": "the transport zone Uuid",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "l2gatewayserviceuuid",
+                    "description": "this L2 gateway service Uuid",
+                    "type": "string"
+                },
+                {
+                    "name": "nvpdeviceid",
+                    "description": "device id of the Nicire Nvp",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this Nirica Nvp belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the controller Ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "niciradevicename",
+                    "description": "device name",
+                    "type": "string"
+                },
+                {
+                    "name": "l3gatewayserviceuuid",
+                    "description": "this L3 gateway service Uuid",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listNetworkServiceProviders",
+            "description": "Lists network serviceproviders for a given physical network.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "list providers by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "list providers by state",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "canenableindividualservice",
+                    "description": "true if individual services can be enabled/disabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "destinationphysicalnetworkid",
+                    "description": "the destination physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "uuid of the network provider",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the provider name",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network provider",
+                    "type": "string"
+                },
+                {
+                    "name": "servicelist",
+                    "description": "services for this provider",
+                    "type": "list"
+                }
+            ]
+        },
+        {
+            "name": "listInfrastructure",
+            "description": "Lists infrastructure",
+            "since": "4.9.3",
+            "isasync": false,
+            "related": "",
+            "params": [
+
+            ],
+            "response": [
+                {
+                    "name": "pods",
+                    "description": "Number of pods",
+                    "type": "integer"
+                },
+                {
+                    "name": "clusters",
+                    "description": "Number of clusters",
+                    "type": "integer"
+                },
+                {
+                    "name": "imagestores",
+                    "description": "Number of images stores",
+                    "type": "integer"
+                },
+                {
+                    "name": "cpusockets",
+                    "description": "Number of cpu sockets",
+                    "type": "integer"
+                },
+                {
+                    "name": "routers",
+                    "description": "Number of routers",
+                    "type": "integer"
+                },
+                {
+                    "name": "hosts",
+                    "description": "Number of hypervisor hosts",
+                    "type": "integer"
+                },
+                {
+                    "name": "zones",
+                    "description": "Number of zones",
+                    "type": "integer"
+                },
+                {
+                    "name": "storagepools",
+                    "description": "Number of storage pools",
+                    "type": "integer"
+                },
+                {
+                    "name": "systemvms",
+                    "description": "Number of systemvms",
+                    "type": "integer"
+                }
+            ]
+        },
+        {
+            "name": "deleteNetscalerControlCenter",
+            "description": "Delete Netscaler Control Center",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "Netscaler Control Center ID",
+                    "type": "string",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listUsageRecords",
+            "description": "Lists usage records for accounts",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startdate",
+                    "description": "Start date range for usage record query (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\", e.g. startDate=2015-01-01 or startdate=2015-01-01 11:00:00).",
+                    "type": "date",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "includetags",
+                    "description": "Flag to enable display of Tags for a resource",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "List usage records for the specified user.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "enddate",
+                    "description": "End date range for usage record query (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\", e.g. startDate=2015-01-01 or startdate=2015-01-01 10:30:00).",
+                    "type": "date",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accountid",
+                    "description": "List usage records for the specified account",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAccounts,enableAccount,listAccounts"
+                },
+                {
+                    "name": "projectid",
+                    "description": "List usage records for specified project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject,suspendProject"
+                },
+                {
+                    "name": "type",
+                    "description": "List usage records for the specified usage type",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "usageid",
+                    "description": "List usage records for the specified usage UUID. Can be used only together with TYPE parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "List usage records for the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domainid",
+                    "description": "the domain ID",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the user account name",
+                    "type": "string"
+                },
+                {
+                    "name": "issystem",
+                    "description": "True if the IPAddress is system IP - allocated during vm deploy or lb rule create",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "number of cpu of resource",
+                    "type": "long"
+                },
+                {
+                    "name": "offeringid",
+                    "description": "offering ID",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "virtual machine ID",
+                    "type": "string"
+                },
+                {
+                    "name": "issourcenat",
+                    "description": "True if the IPAddress is source NAT",
+                    "type": "boolean"
+                },
+                {
+                    "name": "usagetype",
+                    "description": "usage type ID",
+                    "type": "integer"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the resource",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "template ID",
+                    "type": "string"
+                },
+                {
+                    "name": "usage",
+                    "description": "usage in hours",
+                    "type": "string"
+                },
+                {
+                    "name": "enddate",
+                    "description": "end date of the usage record",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the user account Id",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "memory allocated for the resource",
+                    "type": "long"
+                },
+                {
+                    "name": "type",
+                    "description": "resource type",
+                    "type": "string"
+                },
+                {
+                    "name": "startdate",
+                    "description": "start date of the usage record",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "virtual machine name",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "virtual size of resource",
+                    "type": "long"
+                },
+                {
+                    "name": "usageid",
+                    "description": "id of the resource",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "True if the resource is default",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "speed of each cpu of resource",
+                    "type": "long"
+                },
+                {
+                    "name": "rawusage",
+                    "description": "raw usage in hours",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "description of the usage record",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain the resource is associated with",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "resource size",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the resource",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteVolume",
+            "description": "Deletes a detached disk volume.",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "The ID of the disk volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listVolumes,detachVolume,createVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listZonesMetrics",
+            "description": "Lists zone metrics",
+            "since": "4.9.3",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "networktype",
+                    "description": "the network type of the zone that the virtual machine belongs to",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
+                },
+                {
+                    "name": "showcapacities",
+                    "description": "flag to display the capacity of the zones",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "tags",
+                    "description": "List zones by resource tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.3"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "available",
+                    "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "cpudisablethreshold",
+                    "description": "cpu usage disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuallocateddisablethreshold",
+                    "description": "cpu allocated disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpumaxdeviation",
+                    "description": "the maximum cpu deviation",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the total cpu used in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryallocatedthreshold",
+                    "description": "memory allocated notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memorymaxdeviation",
+                    "description": "the maximum memory deviation",
+                    "type": "string"
+                },
+                {
+                    "name": "cputhreshold",
+                    "description": "cpu usage notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the total cpu used in Ghz",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryallocateddisablethreshold",
+                    "description": "memory allocated disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuallocated",
+                    "description": "the total cpu allocated in Ghz",
+                    "type": "string"
+                },
+                {
+                    "name": "memorythreshold",
+                    "description": "memory usage notification threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memorydisablethreshold",
+                    "description": "memory usage disable threshold exceeded",
+                    "type": "boolean"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the total cpu allocated in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "clusters",
+                    "description": "healthy / total clusters in the zone",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total cpu capacity in Ghz",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total cpu capacity in GiB",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuallocatedthreshold",
+                    "description": "cpu allocated notification threshold exceeded",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "enableUser",
+            "description": "Enables a user account",
+            "isasync": false,
+            "related": "getUser,createUser",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "Enables user by user ID.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "enableUser,getUser,createUser"
+                }
+            ],
+            "response": [
+                {
+                    "name": "firstname",
+                    "description": "the user firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "lastname",
+                    "description": "the user lastname",
+                    "type": "string"
+                },
+                {
+                    "name": "apikey",
+                    "description": "the api key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "the user email address",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the user ID",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "the account type of the user",
+                    "type": "short"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if user is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the timezone user was created in",
+                    "type": "string"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the user state",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "iscallerchilddomain",
+                    "description": "the boolean value representing if the updating target is in caller's child domain",
+                    "type": "boolean"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the user account was created",
+                    "type": "date"
+                },
+                {
+                    "name": "usersource",
+                    "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user name",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account ID of the user",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "extractTemplate",
             "description": "Extracts a template",
             "isasync": true,
-            "name": "extractTemplate",
+            "related": "",
             "params": [
                 {
-                    "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD",
-                    "length": 255,
-                    "name": "mode",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template",
-                    "length": 255,
-                    "name": "id",
-                    "related": "registerTemplate,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the zone where the ISO is originally located",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,createZone",
+                    "description": "the ID of the zone where the ISO is originally located",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createZone,listZones"
                 },
                 {
-                    "description": "the url to which the ISO would be extracted",
-                    "length": 2048,
+                    "name": "mode",
+                    "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the template",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
                     "name": "url",
-                    "required": false,
-                    "type": "string"
+                    "description": "the url to which the ISO would be extracted",
+                    "type": "string",
+                    "length": 2048,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the name of the extracted object",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the extraction",
                     "name": "status",
+                    "description": "the status of the extraction",
                     "type": "string"
                 },
                 {
-                    "description": "the time and date the object was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the state of the extracted object",
                     "name": "state",
+                    "description": "the state of the extracted object",
                     "type": "string"
                 },
                 {
-                    "description": "the account id to which the extracted object belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the upload id of extracted object",
-                    "name": "extractId",
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "name": "resultstring",
-                    "type": "string"
-                },
-                {
-                    "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the mode of extraction - upload or download",
-                    "name": "extractMode",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of extracted object",
                     "name": "id",
+                    "description": "the id of extracted object",
                     "type": "string"
                 },
                 {
-                    "description": "zone ID the object was extracted from",
-                    "name": "zoneid",
+                    "name": "url",
+                    "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded",
                     "type": "string"
                 },
                 {
-                    "description": "the percentage of the entity uploaded to the specified location",
+                    "name": "extractId",
+                    "description": "the upload id of extracted object",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the extracted object",
+                    "type": "string"
+                },
+                {
+                    "name": "resultstring",
+                    "description": "",
+                    "type": "string"
+                },
+                {
                     "name": "uploadpercentage",
+                    "description": "the percentage of the entity uploaded to the specified location",
                     "type": "integer"
                 },
                 {
-                    "description": "type of the storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
 
                 },
                 {
-                    "description": "zone name the object was extracted from",
+                    "name": "storagetype",
+                    "description": "type of the storage",
+                    "type": "string"
+                },
+                {
                     "name": "zonename",
+                    "description": "zone name the object was extracted from",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the time and date the object was created",
+                    "type": "date"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone ID the object was extracted from",
+                    "type": "string"
+                },
+                {
+                    "name": "extractMode",
+                    "description": "the mode of extraction - upload or download",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the extracted object belongs",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "expungeVirtualMachine",
             "description": "Expunge a virtual machine. Once expunged, it cannot be recoverd.",
             "isasync": true,
-            "name": "expungeVirtualMachine",
             "params": [
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Suspends a project",
-            "isasync": true,
             "name": "suspendProject",
+            "description": "Suspends a project",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "activateProject",
             "params": [
                 {
-                    "description": "id of the project to be suspended",
-                    "length": 255,
                     "name": "id",
-                    "related": "suspendProject,activateProject",
+                    "description": "id of the project to be suspended",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "activateProject,suspendProject"
                 }
             ],
-            "related": "activateProject",
             "response": [
                 {
-                    "description": "the displaytext of the project",
-                    "name": "displaytext",
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this project",
                     "type": "string"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) owned by project",
-                    "name": "secondarystoragetotal",
+                    "name": "displaytext",
+                    "description": "the displaytext of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this project",
                     "type": "long"
                 },
                 {
-                    "description": "the list of resource tags associated with vm",
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this project",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with vm",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
                             "name": "projectid",
+                            "description": "the project id the tag belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
                             "name": "resourcetype",
+                            "description": "resource type",
                             "type": "string"
                         },
                         {
-                            "description": "the project name where tag belongs to",
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
                             "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the total number of networks the project can own",
                     "name": "networklimit",
+                    "description": "the total number of networks the project can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of public ip addresses allocated for this project",
-                    "name": "iptotal",
-                    "type": "long"
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by project",
+                    "type": "float"
                 },
                 {
-                    "description": "the state of the project",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this project",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of cpu cores owned by project",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines available for this project to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this project",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the project can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this project can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by project",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs owned by project",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this project",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by project",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the project can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this project",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this project",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this project",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by project",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain name where the project belongs to",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this project",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total volume available for this project",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the project's owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this project",
                     "name": "volumetotal",
+                    "description": "the total volume being used by this project",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the project",
-                    "name": "name",
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this project",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores available to be created for this project",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this project",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the project can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this project",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores the project can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this project",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this project",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this project",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this project",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id the project belongs to",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the project can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks available to be created for this project",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the project",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this project to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this project",
                     "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this project",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots stored by this project",
-                    "name": "snapshottotal",
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name where the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this project",
                     "type": "long"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "projectaccountname",
+                    "description": "the project account name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this project can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this project to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the project's owner",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this project",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the project",
+                    "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "updateIpAddress",
             "description": "Updates an IP address",
             "isasync": true,
-            "name": "updateIpAddress",
+            "related": "listPublicIpAddresses,associateIpAddress",
             "params": [
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the public IP address to update",
-                    "length": 255,
                     "name": "id",
-                    "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses",
+                    "description": "the ID of the public IP address to update",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateIpAddress,listPublicIpAddresses,associateIpAddress"
                 },
                 {
-                    "description": "an optional field, whether to the display the IP to the end user or not",
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
                     "length": 255,
-                    "name": "fordisplay",
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the IP to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "associateIpAddress,listPublicIpAddresses",
             "response": [
                 {
-                    "description": "the ID of the Network where ip belongs to",
-                    "name": "networkid",
+                    "name": "virtualmachinename",
+                    "description": "virtual machine name the ip address is assigned to (not null only for static nat Ip)",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with ip address",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the account the public IP address is associated with",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the VLAN associated with the IP address",
-                    "name": "vlanname",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the zone the public IP address belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the IP address is a source nat address, false otherwise",
-                    "name": "issourcenat",
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the IP address",
                     "type": "boolean"
                 },
                 {
-                    "description": "public IP address",
-                    "name": "ipaddress",
+                    "name": "purpose",
+                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
                     "type": "string"
                 },
                 {
-                    "description": "date the public IP address was acquired",
+                    "name": "vmipaddress",
+                    "description": "virtual machine (dnat) ip address (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "issourcenat",
+                    "description": "true if the IP address is a source nat address, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vlanid",
+                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "associatednetworkid",
+                    "description": "the ID of the Network associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "associatednetworkname",
+                    "description": "the name of the Network associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "public IP address id",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account the public IP address is associated with",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain the public IP address is associated with",
+                    "type": "string"
+                },
+                {
                     "name": "allocated",
+                    "description": "date the public IP address was acquired",
                     "type": "date"
                 },
                 {
-                    "description": "the name of the zone the public IP address belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
                     "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID the public IP address is associated with",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only",
-                    "name": "vlanid",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinename",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine display name the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachinedisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the IP address",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "virutal machine (dnat) ip address (not null only for static nat Ip)",
-                    "name": "vmipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "virutal machine id the ip address is assigned to (not null only for static nat Ip)",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Network associated with the IP address",
-                    "name": "associatednetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain the public IP address is associated with",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the ip belongs to",
                     "name": "vpcid",
+                    "description": "VPC the ip belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network this belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value",
-                    "name": "purpose",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
                     "name": "issystem",
+                    "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the Network associated with the IP address",
-                    "name": "associatednetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "is public ip for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the ipaddress",
                     "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "true if this ip is for static nat, false otherwise",
-                    "name": "isstaticnat",
+                    "name": "physicalnetworkid",
+                    "description": "the physical network this belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is public ip for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "is public IP portable across the zones",
+                    "name": "zoneid",
+                    "description": "the ID of the zone the public IP address belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "virtual machine id the ip address is assigned to (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the ID of the Network where ip belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachinedisplayname",
+                    "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the public IP address belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "isstaticnat",
+                    "description": "true if this ip is for static nat, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID the public IP address is associated with",
+                    "type": "string"
+                },
+                {
+                    "name": "vlanname",
+                    "description": "the VLAN associated with the IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with ip address",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "state",
+                    "description": "State of the ip address. Can be: Allocatin, Allocated and Releasing",
+                    "type": "string"
+                },
+                {
                     "name": "isportable",
+                    "description": "is public IP portable across the zones",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "getApiLimit",
             "description": "Get API limit count for the caller",
             "isasync": false,
-            "name": "getApiLimit",
+            "related": "",
             "params": [
 
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the account name of the api remaining count",
                     "name": "account",
+                    "description": "the account name of the api remaining count",
                     "type": "string"
                 },
                 {
-                    "description": "seconds left to reset counters",
-                    "name": "expireAfter",
-                    "type": "long"
-                },
-                {
-                    "description": "the account uuid of the api remaining count",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "number of api already issued",
-                    "name": "apiIssued",
-                    "type": "int"
-                },
-                {
-                    "description": "currently allowed number of apis",
                     "name": "apiAllowed",
+                    "description": "currently allowed number of apis",
                     "type": "int"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account uuid of the api remaining count",
+                    "type": "string"
+                },
+                {
+                    "name": "apiIssued",
+                    "description": "number of api already issued",
+                    "type": "int"
+                },
+                {
+                    "name": "expireAfter",
+                    "description": "seconds left to reset counters",
+                    "type": "long"
                 }
             ]
         },
         {
-            "description": "Deletes a storage network IP Range.",
-            "isasync": true,
             "name": "deleteStorageNetworkIpRange",
+            "description": "Deletes a storage network IP Range.",
+            "since": "3.0.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "the uuid of the storage network ip range",
-                    "length": 255,
                     "name": "id",
-                    "related": "createStorageNetworkIpRange",
+                    "description": "the uuid of the storage network ip range",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createStorageNetworkIpRange"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
-            "description": "Adds a VMware datacenter to specified zone",
+            "name": "configureSimulatorHAProviderState",
+            "description": "configures simulator HA provider state for a host for probing and testing",
+            "since": "4.11",
             "isasync": false,
-            "name": "addVmwareDc",
             "params": [
                 {
-                    "description": "The Username required to connect to resource.",
+                    "name": "activity",
+                    "description": "Set true is haprovider for simulator host should have activity",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "The name/ip of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.",
+                    "name": "fence",
+                    "description": "Set true is haprovider for simulator host should be be fence-able",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "vcenter",
+                    "required": true
+                },
+                {
+                    "name": "health",
+                    "description": "Set true is haprovider for simulator host should be healthy",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "recover",
+                    "description": "Set true is haprovider for simulator host should be be recoverable",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "hostid",
+                    "description": "List by host ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Name of VMware datacenter to be added to specified zone.",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The Zone ID.",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "The password for specified username.",
-                    "length": 255,
-                    "name": "password",
-                    "required": false,
-                    "type": "string"
+                    "related": "addBaremetalHost,reconnectHost"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "The VMware Datacenter ID",
-                    "name": "id",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the Zone ID associated with this VMware Datacenter",
-                    "name": "zoneid",
-                    "type": "long"
-                },
-                {
-                    "description": "The VMware Datacenter name",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "The VMware vCenter name/ip",
-                    "name": "vcenter",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "migrateNetwork",
+            "description": "moves a network to another physical network",
+            "since": "4.11.0",
+            "isasync": true,
+            "related": "listNetworks,updateNetwork,createNetwork",
+            "params": [
+                {
+                    "name": "resume",
+                    "description": "true if previous network migration cmd failed",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "networkid",
+                    "description": "the ID of the network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,updateNetwork,createNetwork,migrateNetwork"
+                }
+            ],
+            "response": [
+                {
+                    "name": "netmask",
+                    "description": "the network's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "networkcidr",
+                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "service",
+                    "description": "the list of services",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "the capability value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
+                                    "type": "boolean"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the service name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "state",
+                                    "description": "state of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "name",
+                                    "description": "the provider name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "servicelist",
+                                    "description": "services for this provider",
+                                    "type": "list"
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
+                },
+                {
+                    "name": "canusefordeploy",
+                    "description": "list networks available for vm deployment",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the network's gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "cidr",
+                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with network",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "state",
+                    "description": "state of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomaintype",
+                    "description": "Broadcast domain type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6cidr",
+                    "description": "the cidr of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "externalid",
+                    "description": "The external id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the network belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id associated with the VPC network",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if network is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "redundantrouter",
+                    "description": "If the network has redundant routers enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the displaytext of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "zonesnetworkspans",
+                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
+                    "type": "set"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "strechedl2subnet",
+                    "description": "true if network can span multiple zones",
+                    "type": "boolean"
+                },
+                {
+                    "name": "specifyipranges",
+                    "description": "true if network supports specifying ip ranges, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "issystem",
+                    "description": "true if network is system, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "related",
+                    "description": "related to what other network configuration",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6gateway",
+                    "description": "the gateway of IPv6 network",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingdisplaytext",
+                    "description": "display text of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "acltype",
+                    "description": "acl type - access type to the network",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcasturi",
+                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingname",
+                    "description": "name of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "subdomainaccess",
+                    "description": "true if users from subdomains can access the domain level network",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingid",
+                    "description": "network offering id the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "networkofferingconservemode",
+                    "description": "true if network offering is ip conserve mode enabled",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaynetwork",
+                    "description": "an optional field, whether to the display the network to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "reservediprange",
+                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
+                    "type": "string"
+                },
+                {
+                    "name": "traffictype",
+                    "description": "the traffic type of the network",
+                    "type": "string"
+                },
+                {
+                    "name": "ispersistent",
+                    "description": "list networks that are persistent",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkofferingavailability",
+                    "description": "availability of the network offering the network is created from",
+                    "type": "string"
+                },
+                {
+                    "name": "restartrequired",
+                    "description": "true network requires restart",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "updateIsoPermissions",
             "description": "Updates ISO permissions",
             "isasync": false,
-            "name": "updateIsoPermissions",
             "params": [
                 {
-                    "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin",
-                    "length": 255,
-                    "name": "isextractable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "a comma delimited list of accounts. If specified, \"op\" parameter has to be passed in.",
-                    "length": 255,
                     "name": "accounts",
-                    "required": false,
-                    "type": "list"
+                    "description": "a comma delimited list of accounts. If specified, \"op\" parameter has to be passed in.",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the template ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "registerTemplate,copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "permission operator (add, remove, reset)",
-                    "length": 255,
-                    "name": "op",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true for public template/iso, false for private templates/isos",
-                    "length": 255,
-                    "name": "ispublic",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.",
-                    "length": 255,
                     "name": "projectids",
-                    "related": "activateProject",
+                    "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": "activateProject"
                 },
                 {
-                    "description": "true for featured template/iso, false otherwise",
-                    "length": 255,
                     "name": "isfeatured",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true for featured template/iso, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "op",
+                    "description": "permission operator (add, remove, reset)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listIsos,registerTemplate,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true for public template/iso, false for private templates/isos",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Registers an existing template into the CloudStack cloud. ",
-            "isasync": false,
             "name": "registerTemplate",
+            "description": "Registers an existing template into the CloudStack cloud.",
+            "isasync": false,
+            "related": "listIsos,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates",
             "params": [
                 {
-                    "description": "32 or 64 bits support. 64 by default",
-                    "length": 255,
-                    "name": "bits",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the format for the template. Possible values include QCOW2, RAW, VHD and OVA.",
-                    "length": 255,
-                    "name": "format",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template supports the password reset feature; default is false",
-                    "length": 255,
-                    "name": "passwordenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "length": 255,
                     "name": "isdynamicallyscalable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Register template for the project",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "projectid",
-                    "related": "activateProject",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the display text of the template. This is usually used for display purposes.",
-                    "length": 4096,
-                    "name": "displaytext",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template requires HVM",
-                    "length": 255,
-                    "name": "requireshvm",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional accountName. Must be used with domainId.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "an optional accountName. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ID of the OS Type that best represents the OS of this template.",
-                    "length": 255,
-                    "name": "ostypeid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "true if the template is available to all accounts; default is true",
-                    "length": 255,
-                    "name": "ispublic",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the template or its derivatives are extractable; default is false",
-                    "length": 255,
-                    "name": "isextractable",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the zone the template is to be hosted on",
-                    "length": 255,
                     "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
+                    "description": "the ID of the zone the template is to be hosted on",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
                 },
                 {
-                    "description": "the target hypervisor for the template",
+                    "name": "domainid",
+                    "description": "an optional domainId. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "hypervisor",
-                    "required": true,
-                    "type": "string"
+                    "required": false,
+                    "related": "listDomainChildren,listDomains"
                 },
                 {
-                    "description": "the MD5 checksum value of this template",
+                    "name": "details",
+                    "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61",
+                    "type": "map",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "format",
+                    "description": "the format for the template. Possible values include QCOW2, RAW, VHD and OVA.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS Type that best represents the OS of this template.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the template. This is usually used for display purposes.",
+                    "type": "string",
+                    "length": 4096,
+                    "required": true
+                },
+                {
                     "name": "checksum",
-                    "required": false,
-                    "type": "string"
+                    "description": "the checksum value of this template. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{<algorithm>}\", not including the double quotes. In this <algorithm> is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "true if the template supports the sshkey upload feature; default is false",
+                    "name": "zoneids",
+                    "description": "A list of zone ids where the template will be hosted. Use this parameter if the template needs to be registered to multiple zones in one go. Use zoneid if the template needs to be registered to only one zone.Passing only -1 to this will cause the template to be registered as a cross zone template and will be copied to all zones. ",
+                    "type": "list",
                     "length": 255,
+                    "required": false,
+                    "related": "createZone,listZones"
+                },
+                {
                     "name": "sshkeyenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the tag for this template.",
+                    "description": "true if the template supports the sshkey upload feature; default is false",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "templatetag",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "the URL of where the template is hosted. Possible URL include http:// and https://",
-                    "length": 2048,
                     "name": "url",
-                    "required": true,
-                    "type": "string"
+                    "description": "the URL of where the template is hosted. Possible URL include http:// and https://",
+                    "type": "string",
+                    "length": 2048,
+                    "required": true
                 },
                 {
-                    "description": "true if the template type is routing i.e., if template is used to deploy router",
+                    "name": "passwordenabled",
+                    "description": "true if the template supports the password reset feature; default is false",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "isrouting",
+                    "required": false
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if the template is available to all accounts; default is true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "Register template for the project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "activateProject"
                 },
                 {
-                    "description": "true if this template is a featured template, false otherwise",
+                    "name": "requireshvm",
+                    "description": "true if this template requires HVM",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "isfeatured",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the name of the template",
+                    "name": "templatetag",
+                    "description": "the tag for this template.",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "directdownload",
+                    "description": "true if template should bypass Secondary Storage and be downloaded to Primary Storage on deployment",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the target hypervisor for the template",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "isrouting",
+                    "description": "true if the template type is routing i.e., if template is used to deploy router",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "bits",
+                    "description": "32 or 64 bits support. 64 by default",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isextractable",
+                    "description": "true if the template or its derivatives are extractable; default is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "the name of the template",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
             "response": [
                 {
-                    "description": "the status of the template",
-                    "name": "status",
+                    "name": "zoneid",
+                    "description": "the ID of the zone for this template",
                     "type": "string"
                 },
                 {
-                    "description": "the tag of this template",
-                    "name": "templatetag",
-                    "type": "string"
+                    "name": "bits",
+                    "description": "the processor bit size",
+                    "type": "int"
                 },
                 {
-                    "description": "the template name",
+                    "name": "sshkeyenabled",
+                    "description": "true if template is sshkey enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "created",
+                    "description": "the date this template was created",
+                    "type": "date"
+                },
+                {
                     "name": "name",
+                    "description": "the template name",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the domain to which the template belongs",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this template is a public template, false otherwise",
-                    "name": "ispublic",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the OS type for this template.",
-                    "name": "ostypename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the template is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this template is a featured template, false otherwise",
-                    "name": "isfeatured",
-                    "type": "boolean"
-                },
-                {
-                    "description": "additional key/value details tied with template",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the template",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the template",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS type for this template.",
-                    "name": "ostypeid",
-                    "type": "string"
-                },
-                {
-                    "description": "the size of the template",
                     "name": "size",
+                    "description": "the size of the template",
                     "type": "long"
                 },
                 {
-                    "description": "the format of the template.",
+                    "name": "isextractable",
+                    "description": "true if the template is extractable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "crossZones",
+                    "description": "true if the template is managed across all Zones, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "checksum",
+                    "description": "checksum of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the template",
+                    "type": "string"
+                },
+                {
                     "name": "format",
+                    "description": "the format of the template.",
                     "type": "imageformat"
                 },
                 {
-                    "description": "the name of the zone for this template",
-                    "name": "zonename",
-                    "type": "string"
+                    "name": "childtemplates",
+                    "description": "if root disk template, then ids of the datas disk templates this template owns",
+                    "type": "set"
                 },
                 {
-                    "description": "true if the reset password feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the secondary storage host for the template",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID of the parent template if present",
-                    "name": "sourcetemplateid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the zone for this template",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the secondary storage host for the template",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the account id to which the template belongs",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name to which the template belongs",
                     "name": "account",
+                    "description": "the account name to which the template belongs",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is ready to be deployed from, false otherwise.",
-                    "name": "isready",
+                    "name": "projectid",
+                    "description": "the project id of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetag",
+                    "description": "the tag of this template",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone for this template",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the secondary storage host for the template",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account id to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypename",
+                    "description": "the name of the OS type for this template.",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the template",
+                    "type": "string"
+                },
+                {
+                    "name": "directdownload",
+                    "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if template is sshkey enabled, false otherwise",
-                    "name": "sshkeyenabled",
-                    "type": "boolean"
+                    "name": "id",
+                    "description": "the template ID",
+                    "type": "string"
                 },
                 {
-                    "description": "the date this template was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "true if the ISO is bootable, false otherwise",
-                    "name": "bootable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the type of the template",
                     "name": "templatetype",
+                    "description": "the type of the template",
                     "type": "string"
                 },
                 {
-                    "description": "the date this template was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "checksum of the template",
-                    "name": "checksum",
+                    "name": "displaytext",
+                    "description": "the template display text",
                     "type": "string"
                 },
                 {
-                    "description": "true if the template is managed across all Zones, false otherwise",
-                    "name": "crossZones",
+                    "name": "passwordenabled",
+                    "description": "true if the reset password feature is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the template display text",
-                    "name": "displaytext",
+                    "name": "isready",
+                    "description": "true if the template is ready to be deployed from, false otherwise.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "parenttemplateid",
+                    "description": "if Datadisk template, then id of the root disk template this template belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalsize",
+                    "description": "the physical size of the template",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date this template was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "bootable",
+                    "description": "true if the ISO is bootable, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "sourcetemplateid",
+                    "description": "the template ID of the parent template if present",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "additional key/value details tied with template",
+                    "type": "map"
+                },
+                {
+                    "name": "isfeatured",
+                    "description": "true if this template is a featured template, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "the ID of the OS type for this template.",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteVPCOffering",
             "description": "Deletes VPC offering",
             "isasync": true,
-            "name": "deleteVPCOffering",
             "params": [
                 {
-                    "description": "the ID of the VPC offering",
-                    "length": 255,
                     "name": "id",
-                    "related": "updateVPCOffering",
+                    "description": "the ID of the VPC offering",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateVPCOffering"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
+            "name": "listSimulatorHAStateTransitions",
+            "description": "list recent simulator HA state transitions for a host for probing and testing",
+            "since": "4.11",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hostid",
+                    "description": "List by host ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "addBaremetalHost,reconnectHost"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "activitycounter",
+                    "description": "the activity counter",
+                    "type": "long"
+                },
+                {
+                    "name": "recoverycounter",
+                    "description": "the recovery counter",
+                    "type": "long"
+                },
+                {
+                    "name": "hastate",
+                    "description": "the ha state",
+                    "type": "string"
+                },
+                {
+                    "name": "prevhastate",
+                    "description": "the previous ha state",
+                    "type": "string"
+                },
+                {
+                    "name": "event",
+                    "description": "the event that caused state transition",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addStratosphereSsp",
             "description": "Adds stratosphere ssp server",
             "isasync": false,
-            "name": "addStratosphereSsp",
+            "related": "",
             "params": [
                 {
-                    "description": "stratosphere ssp api name",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "stratosphere ssp api name",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "stratosphere ssp api password",
-                    "length": 255,
-                    "name": "password",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "stratosphere ssp api username",
-                    "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "stratosphere ssp server url",
-                    "length": 255,
                     "name": "url",
-                    "required": true,
-                    "type": "string"
+                    "description": "stratosphere ssp server url",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "stratosphere ssp tenant uuid",
+                    "name": "zoneid",
+                    "description": "the zone ID",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "username",
+                    "description": "stratosphere ssp api username",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "password",
+                    "description": "stratosphere ssp api password",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "tenantuuid",
-                    "required": false,
-                    "type": "string"
+                    "description": "stratosphere ssp tenant uuid",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "name",
                     "name": "name",
+                    "description": "name",
                     "type": "string"
                 },
                 {
-                    "description": "server id of the stratosphere ssp server",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "url of ssp endpoint",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "zone which this ssp controls",
                     "name": "zoneid",
+                    "description": "zone which this ssp controls",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "url of ssp endpoint",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "server id of the stratosphere ssp server",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Update a Nuage VSP device",
-            "isasync": true,
             "name": "updateNuageVspDevice",
+            "description": "Update a Nuage VSP device",
+            "since": "4.6",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the user name of the CMS user in Nuage VSD",
-                    "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the version of the API to use to communicate to Nuage VSD",
-                    "length": 255,
-                    "name": "apiversion",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the physical network in to which Nuage VSP is added",
-                    "length": 255,
                     "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
+                    "description": "the ID of the physical network in to which Nuage VSP is added",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "createPhysicalNetwork"
                 },
                 {
-                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
-                    "length": 255,
-                    "name": "retryinterval",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the password of CMS user in Nuage VSD",
-                    "length": 255,
-                    "name": "password",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the number of retries on failure to communicate to Nuage VSD",
-                    "length": 255,
-                    "name": "retrycount",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the hostname of the Nuage VSD",
-                    "length": 255,
                     "name": "hostname",
-                    "required": false,
-                    "type": "string"
+                    "description": "the hostname of the Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the port to communicate to Nuage VSD",
-                    "length": 255,
                     "name": "port",
-                    "required": false,
-                    "type": "integer"
+                    "description": "the port to communicate to Nuage VSD",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "retrycount",
+                    "description": "the number of retries on failure to communicate to Nuage VSD",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "retryinterval",
+                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "the user name of the CMS user in Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "password",
+                    "description": "the password of CMS user in Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "apiversion",
+                    "description": "the version of the API to use to communicate to Nuage VSD",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the port to communicate to Nuage VSD",
-                    "name": "port",
-                    "type": "int"
-                },
-                {
-                    "description": "the device id of the Nuage VSD",
-                    "name": "vspdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the service provider name corresponding to this Nuage VSP device",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of the API to use to communicate to Nuage VSD",
-                    "name": "apiversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the hostname of the Nuage VSD",
                     "name": "hostname",
+                    "description": "the hostname of the Nuage VSD",
                     "type": "string"
                 },
                 {
-                    "description": "the number of retries on failure to communicate to Nuage VSD",
-                    "name": "retrycount",
+                    "name": "vspdeviceid",
+                    "description": "the device id of the Nuage VSD",
+                    "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "the port to communicate to Nuage VSD",
                     "type": "int"
                 },
                 {
-                    "description": "the ID of the physical network to which this Nuage VSP belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
                     "name": "retryinterval",
+                    "description": "the time to wait after failure before retrying to communicate to Nuage VSD",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the Nuage VSP device",
-                    "name": "nuagedevicename",
+                    "name": "apiversion",
+                    "description": "the version of the API to use to communicate to Nuage VSD",
                     "type": "string"
                 },
                 {
-                    "description": "the CMS ID generated by the Nuage VSD",
+                    "name": "retrycount",
+                    "description": "the number of retries on failure to communicate to Nuage VSD",
+                    "type": "int"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the ID of the physical network to which this Nuage VSP belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "the service provider name corresponding to this Nuage VSP device",
+                    "type": "string"
+                },
+                {
+                    "name": "nuagedevicename",
+                    "description": "the name of the Nuage VSP device",
+                    "type": "string"
+                },
+                {
                     "name": "cmsid",
+                    "description": "the CMS ID generated by the Nuage VSD",
                     "type": "string"
                 }
-            ],
-            "since": "4.6"
+            ]
         },
         {
+            "name": "deleteNetworkACL",
             "description": "Deletes a network ACL",
             "isasync": true,
-            "name": "deleteNetworkACL",
             "params": [
                 {
+                    "name": "id",
                     "description": "the ID of the network ACL",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "",
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Creates a storage pool.",
-            "isasync": false,
-            "name": "createStoragePool",
-            "params": [
-                {
-                    "description": "the scope of the storage: cluster or zone",
-                    "length": 255,
-                    "name": "scope",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the details for the storage pool",
-                    "length": 255,
-                    "name": "details",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "the tags for the storage pool",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the storage provider name",
-                    "length": 255,
-                    "name": "provider",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the storage pool",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones,createZone",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "bytes CloudStack can provision from this storage pool",
-                    "length": 255,
-                    "name": "capacitybytes",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the name for the storage pool",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the storage pool",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the URL of the storage pool",
-                    "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "IOPS CloudStack can provision from this storage pool",
-                    "length": 255,
-                    "name": "capacityiops",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "hypervisor type of the hosts in zone that will be attached to this storage pool. KVM, VMware supported as of now.",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "whether the storage should be managed by CloudStack",
-                    "length": 255,
-                    "name": "managed",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the cluster ID for the storage pool",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "addCluster",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "findStoragePoolsForMigration,enableStorageMaintenance,cancelStorageMaintenance",
-            "response": [
-                {
-                    "description": "the ID of the cluster for the storage pool",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the storage pool",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the storage pool",
-                    "name": "state",
-                    "type": "storagepoolstatus"
-                },
-                {
-                    "description": "the scope of the storage pool",
-                    "name": "scope",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor type of the storage pool",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the storage pool",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the storage pool",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool path",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool capabilities",
-                    "name": "storagecapabilities",
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the Pod ID of the storage pool",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "IOPS CloudStack can provision from this storage pool",
-                    "name": "capacityiops",
-                    "type": "long"
-                },
-                {
-                    "description": "the Zone name of the storage pool",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the cluster for the storage pool",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the storage pool",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool type",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the overprovisionfactor for the storage pool",
-                    "name": "overprovisionfactor",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the storage pool",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the date and time the storage pool was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the host's currently used disk size",
-                    "name": "disksizeused",
-                    "type": "long"
-                },
-                {
-                    "description": "the tags for the storage pool",
-                    "name": "tags",
-                    "type": "string"
-                }
-            ]
-        },
-        {
+            "name": "findStoragePoolsForMigration",
             "description": "Lists storage pools available for migration of a volume.",
             "isasync": false,
-            "name": "findStoragePoolsForMigration",
+            "related": "cancelStorageMaintenance,enableStorageMaintenance,createStoragePool",
             "params": [
                 {
-                    "description": "",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "keyword",
-                    "required": false,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the volume",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listVolumes,detachVolume,createVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "name": "zoneid",
+                    "description": "the Zone ID of the storage pool",
+                    "type": "string"
                 },
                 {
-                    "description": "the ID of the volume",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateVolume,createVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "enableStorageMaintenance,cancelStorageMaintenance",
-            "response": [
+                    "name": "type",
+                    "description": "the storage pool type",
+                    "type": "string"
+                },
                 {
-                    "description": "the date and time the storage pool was created",
                     "name": "created",
+                    "description": "the date and time the storage pool was created",
                     "type": "date"
                 },
                 {
-                    "description": "the Pod name of the storage pool",
-                    "name": "podname",
+                    "name": "clustername",
+                    "description": "the name of the cluster for the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the storage pool",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "IOPS CloudStack can provision from this storage pool",
-                    "name": "capacityiops",
-                    "type": "long"
-                },
-                {
-                    "description": "the Pod ID of the storage pool",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the cluster for the storage pool",
                     "name": "clusterid",
+                    "description": "the ID of the cluster for the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the storage pool",
-                    "name": "id",
+                    "name": "ipaddress",
+                    "description": "the IP address of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone ID of the storage pool",
-                    "name": "zoneid",
+                    "name": "scope",
+                    "description": "the scope of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the total disk size of the storage pool",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the storage pool path",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the storage pool",
                     "name": "state",
+                    "description": "the state of the storage pool",
                     "type": "storagepoolstatus"
                 },
                 {
-                    "description": "the name of the cluster for the storage pool",
-                    "name": "clustername",
+                    "name": "id",
+                    "description": "the ID of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the hypervisor type of the storage pool",
-                    "name": "hypervisor",
+                    "name": "path",
+                    "description": "the storage pool path",
                     "type": "string"
                 },
                 {
-                    "description": "the overprovisionfactor for the storage pool",
-                    "name": "overprovisionfactor",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the storage pool",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently used disk size",
                     "name": "disksizeused",
+                    "description": "the host's currently used disk size",
                     "type": "long"
                 },
                 {
-                    "description": "the Zone name of the storage pool",
-                    "name": "zonename",
+                    "name": "hypervisor",
+                    "description": "the hypervisor type of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the scope of the storage pool",
-                    "name": "scope",
-                    "type": "string"
+                    "name": "allocatediops",
+                    "description": "total min IOPS currently in use by volumes",
+                    "type": "long"
                 },
                 {
-                    "description": "the tags for the storage pool",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool type",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool capabilities",
                     "name": "storagecapabilities",
+                    "description": "the storage pool capabilities",
                     "type": "map"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "suitableformigration",
+                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "overprovisionfactor",
+                    "description": "the overprovisionfactor for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "Storage provider for this pool",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the storage pool",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "createStoragePool",
+            "description": "Creates a storage pool.",
+            "isasync": false,
+            "related": "cancelStorageMaintenance,enableStorageMaintenance",
+            "params": [
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createZone,listZones"
+                },
+                {
+                    "name": "url",
+                    "description": "the URL of the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "capacitybytes",
+                    "description": "bytes CloudStack can provision from this storage pool",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "managed",
+                    "description": "whether the storage should be managed by CloudStack",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the storage: cluster or zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "hypervisor type of the hosts in zone that will be attached to this storage pool. KVM, VMware supported as of now.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name for the storage pool",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID for the storage pool",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addCluster"
+                },
+                {
+                    "name": "details",
+                    "description": "the details for the storage pool",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "provider",
+                    "description": "the storage provider name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the storage pool was created",
+                    "type": "date"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "Storage provider for this pool",
+                    "type": "string"
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "suitableformigration",
+                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "overprovisionfactor",
+                    "description": "the overprovisionfactor for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "storagecapabilities",
+                    "description": "the storage pool capabilities",
+                    "type": "map"
+                },
+                {
+                    "name": "disksizeused",
+                    "description": "the host's currently used disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor type of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "allocatediops",
+                    "description": "total min IOPS currently in use by volumes",
+                    "type": "long"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "the storage pool type",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the name of the cluster for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the storage pool",
+                    "type": "storagepoolstatus"
+                },
+                {
+                    "name": "path",
+                    "description": "the storage pool path",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addOpenDaylightController",
             "description": "Adds an OpenDyalight controler",
             "isasync": true,
-            "name": "addOpenDaylightController",
+            "related": "",
             "params": [
                 {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "createPhysicalNetwork",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Credential to access the OpenDaylight API",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Username to access the OpenDaylight API",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Api URL of the OpenDaylight Controller.",
-                    "length": 255,
                     "name": "url",
+                    "description": "Api URL of the OpenDaylight Controller.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "Username to access the OpenDaylight API",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
+                    "related": "createPhysicalNetwork"
+                },
+                {
+                    "name": "password",
+                    "description": "Credential to access the OpenDaylight API",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "device id of the controller",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the name assigned to the controller",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the url of the controller api",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the username to authenticate to the controller",
                     "name": "username",
+                    "description": "the username to authenticate to the controller",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network to which this controller belongs to",
+                    "name": "id",
+                    "description": "device id of the controller",
+                    "type": "string"
+                },
+                {
                     "name": "physicalnetworkid",
+                    "description": "the physical network to which this controller belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name assigned to the controller",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of the controller api",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createZone",
             "description": "Creates a Zone.",
             "isasync": false,
-            "name": "createZone",
+            "related": "listZones",
             "params": [
                 {
-                    "description": "network type of the zone, can be Basic or Advanced",
-                    "length": 255,
-                    "name": "networktype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for IPv6 network in the Zone",
-                    "length": 255,
-                    "name": "ip6dns1",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the containing domain, null for public zones",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomainChildren,listDomains",
+                    "description": "the ID of the containing domain, null for public zones",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomainChildren,listDomains"
                 },
                 {
-                    "description": "the first DNS for the Zone",
-                    "length": 255,
-                    "name": "dns1",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Network domain name for the networks in the zone",
-                    "length": 255,
                     "name": "domain",
-                    "required": false,
-                    "type": "string"
+                    "description": "Network domain name for the networks in the zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "Allocation state of this Zone for allocation of new resources",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the Zone",
-                    "length": 255,
-                    "name": "dns2",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the guest CIDR address for the Zone",
-                    "length": 255,
-                    "name": "guestcidraddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the second internal DNS for the Zone",
-                    "length": 255,
-                    "name": "internaldns2",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the first internal DNS for the Zone",
-                    "length": 255,
                     "name": "internaldns1",
-                    "required": true,
-                    "type": "string"
+                    "description": "the first internal DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "true if local storage offering enabled, false otherwise",
-                    "length": 255,
-                    "name": "localstorageenabled",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the Zone",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for IPv6 network in the Zone",
-                    "length": 255,
-                    "name": "ip6dns2",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "true if network is security group enabled, false otherwise",
-                    "length": 255,
                     "name": "securitygroupenabled",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "true if network is security group enabled, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networktype",
+                    "description": "network type of the zone, can be Basic or Advanced",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "Allocation state of this Zone for allocation of new resources",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "internaldns2",
+                    "description": "the second internal DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first DNS for IPv6 network in the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second DNS for IPv6 network in the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "localstorageenabled",
+                    "description": "true if local storage offering enabled, false otherwise",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "guestcidraddress",
+                    "description": "the guest CIDR address for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the Zone",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "listZones",
             "response": [
                 {
-                    "description": "Zone name",
-                    "name": "name",
+                    "name": "dns1",
+                    "description": "the first DNS for the Zone",
                     "type": "string"
                 },
                 {
-                    "description": "the second DNS for the Zone",
-                    "name": "dns2",
+                    "name": "allocationstate",
+                    "description": "the allocation state of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "the second IPv6 DNS for the Zone",
-                    "name": "ip6dns2",
+                    "name": "internaldns2",
+                    "description": "the second internal DNS for the Zone",
                     "type": "string"
                 },
                 {
-                    "description": "true if security groups support is enabled, false otherwise",
-                    "name": "securitygroupsenabled",
+                    "name": "capacity",
+                    "description": "the capacity of the Zone",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the capacity type",
+                            "type": "short"
+                        },
+                        {
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podname",
+                            "description": "the Pod name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
+                            "type": "long"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainname",
+                    "description": "the name of the containing domain, null for public zones",
+                    "type": "string"
+                },
+                {
+                    "name": "localstorageenabled",
+                    "description": "true if local storage offering enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
+                    "name": "dns2",
+                    "description": "the second DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "guestcidraddress",
+                    "description": "the guest CIDR address for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with zone.",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "id",
+                    "description": "Zone id",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "securitygroupsenabled",
+                    "description": "true if security groups support is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "internaldns1",
+                    "description": "the first internal DNS for the Zone",
+                    "type": "string"
+                },
+                {
 
                 },
                 {
-                    "description": "the display text of the zone",
-                    "name": "displaytext",
+                    "name": "domain",
+                    "description": "Network domain name for the networks in the zone",
                     "type": "string"
                 },
                 {
-                    "description": "Meta data associated with the zone (key/value pairs)",
+                    "name": "zonetoken",
+                    "description": "Zone Token",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the zone",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "Zone description",
+                    "type": "string"
+                },
+                {
                     "name": "resourcedetails",
+                    "description": "Meta data associated with the zone (key/value pairs)",
                     "type": "map"
                 },
                 {
-                    "description": "Zone description",
-                    "name": "description",
+                    "name": "name",
+                    "description": "Zone name",
                     "type": "string"
                 },
                 {
-                    "description": "the guest CIDR address for the Zone",
-                    "name": "guestcidraddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the first IPv6 DNS for the Zone",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the second internal DNS for the Zone",
-                    "name": "internaldns2",
-                    "type": "string"
-                },
-                {
-                    "description": "true if local storage offering enabled, false otherwise",
-                    "name": "localstorageenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the allocation state of the cluster",
-                    "name": "allocationstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the first internal DNS for the Zone",
-                    "name": "internaldns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the capacity of the Zone",
-                    "name": "capacity",
-                    "response": [
-                        {
-                            "description": "the Zone name",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Zone ID",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity type",
-                            "name": "type",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the Pod name",
-                            "name": "podname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity currently in use",
-                            "name": "capacityused",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Cluster name",
-                            "name": "clustername",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the percentage of capacity currently in use",
-                            "name": "percentused",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Pod ID",
-                            "name": "podid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "Zone id",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with zone.",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the name of the containing domain, null for public zones",
-                    "name": "domainname",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the Zone",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the network type of the zone; can be Basic or Advanced",
-                    "name": "networktype",
-                    "type": "string"
-                },
-                {
-                    "description": "Zone Token",
-                    "name": "zonetoken",
-                    "type": "string"
-                },
-                {
-                    "description": "the dhcp Provider for the Zone",
-                    "name": "dhcpprovider",
-                    "type": "string"
-                },
-                {
-                    "description": "Network domain name for the networks in the zone",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the UUID of the containing domain, null for public zones",
                     "name": "domainid",
+                    "description": "the UUID of the containing domain, null for public zones",
+                    "type": "string"
+                },
+                {
+                    "name": "networktype",
+                    "description": "the network type of the zone; can be Basic or Advanced",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the Zone",
+                    "type": "string"
+                },
+                {
+                    "name": "dhcpprovider",
+                    "description": "the dhcp Provider for the Zone",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "disable a Cisco Nexus VSM device",
-            "isasync": true,
-            "name": "disableCiscoNexusVSM",
-            "params": [
-                {
-                    "description": "Id of the Cisco Nexus 1000v VSM device to be deleted",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listCiscoNexusVSMs,disableCiscoNexusVSM",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "listCiscoNexusVSMs",
-            "response": [
-                {
-                    "description": "The Device State (Enabled/Disabled) of the VSM",
-                    "name": "vsmdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external Cisco Nexus 1000v Virtual Supervisor Module",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "management vlan id of the VSM",
-                    "name": "vsmmgmtvlanid",
-                    "type": "string"
-                },
-                {
-                    "description": "The mode of the VSM (standalone/HA)",
-                    "name": "vsmconfigmode",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "vsmdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the Cisco N1KV VSM device",
-                    "name": "vsmdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "control vlan id of the VSM",
-                    "name": "vsmctrlvlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "packet vlan id of the VSM",
-                    "name": "vsmpktvlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "storage vlan id of the VSM",
-                    "name": "vsmstoragevlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "device state",
-                    "name": "vsmdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "The VSM is a switch supervisor. This is the VSM's switch domain id",
-                    "name": "vsmdomainid",
-                    "type": "string"
-                },
-                {
-                    "description": "The Config State (Primary/Standby) of the VSM",
-                    "name": "vsmconfigstate",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Creates a Storage network IP range.",
-            "isasync": true,
             "name": "createStorageNetworkIpRange",
+            "description": "Creates a Storage network IP range.",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the netmask for storage network",
-                    "length": 255,
                     "name": "netmask",
-                    "required": true,
-                    "type": "string"
+                    "description": "the netmask for storage network",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the ending IP address",
-                    "length": 255,
-                    "name": "endip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the beginning IP address",
-                    "length": 255,
-                    "name": "startip",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "UUID of pod where the ip range belongs to",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "updatePod",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Optional. The vlan the ip range sits on, default to Null when it is not specificed which means you network is not on any Vlan. This is mainly for Vmware as other hypervisors can directly reterive bridge from pyhsical network traffic type table",
-                    "length": 255,
-                    "name": "vlan",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the gateway for storage network",
-                    "length": 255,
                     "name": "gateway",
+                    "description": "the gateway for storage network",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP address",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vlan",
+                    "description": "Optional. The vlan the ip range sits on, default to Null when it is not specificed which means you network is not on any Vlan. This is mainly for Vmware as other hypervisors can directly reterive bridge from pyhsical network traffic type table",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "UUID of pod where the ip range belongs to",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "startip",
+                    "description": "the beginning IP address",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the network uuid of storage network IP range",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the netmask of the storage network IP range",
                     "name": "netmask",
+                    "description": "the netmask of the storage network IP range",
                     "type": "string"
                 },
                 {
-                    "description": "the start ip of the storage network IP range",
-                    "name": "startip",
+                    "name": "podid",
+                    "description": "the Pod uuid for the storage network IP range",
                     "type": "string"
                 },
                 {
-                    "description": "the ID or VID of the VLAN.",
+                    "name": "gateway",
+                    "description": "the gateway of the storage network IP range",
+                    "type": "string"
+                },
+                {
                     "name": "vlan",
+                    "description": "the ID or VID of the VLAN.",
                     "type": "integer"
                 },
                 {
-                    "description": "the Pod uuid for the storage network IP range",
-                    "name": "podid",
+                    "name": "networkid",
+                    "description": "the network uuid of storage network IP range",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone uuid of the storage network IP range",
                     "name": "zoneid",
+                    "description": "the Zone uuid of the storage network IP range",
                     "type": "string"
                 },
                 {
-                    "description": "the uuid of storage network IP range.",
                     "name": "id",
+                    "description": "the uuid of storage network IP range.",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway of the storage network IP range",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the end ip of the storage network IP range",
                     "name": "endip",
+                    "description": "the end ip of the storage network IP range",
+                    "type": "string"
+                },
+                {
+                    "name": "startip",
+                    "description": "the start ip of the storage network IP range",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "listDomainChildren",
             "description": "Lists all children domains belonging to a specified domain",
             "isasync": false,
-            "name": "listDomainChildren",
+            "related": "listDomains",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
                     "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
                     "name": "listall",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list children domains by name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "list children domain by parent domain ID.",
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "id",
-                    "related": "listDomainChildren,listDomains",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "to return the entire tree, use the value \"true\". To return the first level children, use the value \"false\".",
-                    "length": 255,
                     "name": "isrecursive",
+                    "description": "to return the entire tree, use the value \"true\". To return the first level children, use the value \"false\".",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "list children domains by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list children domain by parent domain ID.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "listDomainChildren,listDomains"
                 }
             ],
-            "related": "listDomains",
             "response": [
                 {
-                    "description": "the total number of virtual machines deployed by this domain",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the domain",
-                    "name": "id",
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the level of the domain",
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this domain",
+                    "type": "string"
+                },
+                {
                     "name": "level",
+                    "description": "the level of the domain",
                     "type": "integer"
                 },
                 {
-                    "description": "the total number of public ip addresses allocated for this domain",
-                    "name": "iptotal",
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of projects being administrated by this domain",
-                    "name": "projecttotal",
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by domain",
+                    "type": "float"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total volume which can be used by this domain",
                     "name": "volumelimit",
+                    "description": "the total volume which can be used by this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the network domain",
+                    "name": "networklimit",
+                    "description": "the total number of networks the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this domain can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by domain",
+                    "type": "long"
+                },
+                {
                     "name": "networkdomain",
+                    "description": "the network domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of snapshots stored by this domain",
-                    "name": "snapshottotal",
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this domain",
                     "type": "long"
                 },
                 {
-                    "description": "the path of the domain",
-                    "name": "path",
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by domain",
+                    "type": "long"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this domain to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which have been created by this domain",
                     "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) available to be used for this domain",
-                    "name": "secondarystorageavailable",
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this domain",
+                    "type": "long"
+                },
+                {
+                    "name": "projectlimit",
+                    "description": "the total number of projects the domain can own",
                     "type": "string"
                 },
                 {
-                    "description": "whether the domain has one or more sub-domains",
+                    "name": "id",
+                    "description": "the ID of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this domain to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this domain",
+                    "type": "long"
+                },
+                {
                     "name": "haschild",
+                    "description": "whether the domain has one or more sub-domains",
                     "type": "boolean"
                 },
                 {
-                    "description": "the total number of cpu cores the domain can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the parent domain",
                     "name": "parentdomainid",
+                    "description": "the domain ID of the parent domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) available to be created for this domain",
                     "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this domain",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the parent domain",
                     "name": "parentdomainname",
+                    "description": "the domain name of the parent domain",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which can be created by this domain",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects the domain can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this domain to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the domain",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this domain can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this domain to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this domain",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the domain can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by domain",
-                    "name": "primarystoragetotal",
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this domain",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of cpu cores available to be created for this domain",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the domain can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by domain",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this domain",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the domain",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this domain",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by domain",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this domain",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this domain",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by domain",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the domain can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the domain can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this domain",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this domain",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks available to be created for this domain",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the domain can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by domain",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of projects available for administration by this domain",
-                    "name": "projectavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this domain",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by domain",
                     "name": "cputotal",
+                    "description": "the total number of cpu cores owned by domain",
                     "type": "long"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this domain",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the domain can own",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the path of the domain",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this domain",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "getVMPassword",
             "description": "Returns an encrypted password for the VM",
             "isasync": false,
-            "name": "getVMPassword",
-            "params": [
-                {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
             "related": "",
-            "response": [
-                {
-                    "description": "The base64 encoded encrypted password of the VM",
-                    "name": "encryptedpassword",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Assign load balancer rule or list of load balancer rules to a global load balancer rules.",
-            "isasync": true,
-            "name": "assignToGlobalLoadBalancerRule",
             "params": [
                 {
-                    "description": "the ID of the global load balancer rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the list load balancer rules that will be assigned to global load balancer rule",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "loadbalancerrulelist",
-                    "related": "",
                     "required": true,
-                    "type": "list"
-                },
-                {
-                    "description": "Map of LB rule id's and corresponding weights (between 1-100) in the GSLB rule, if not specified weight of a LB rule is defaulted to 1. Specified as 'gslblbruleweightsmap[0].loadbalancerid=UUID&gslblbruleweightsmap[0].weight=10'",
-                    "length": 255,
-                    "name": "gslblbruleweightsmap",
-                    "required": false,
-                    "type": "map"
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "encryptedpassword",
+                    "description": "The base64 encoded encrypted password of the VM",
                     "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "configureOvsElement",
             "description": "Configures an ovs element.",
             "isasync": true,
-            "name": "configureOvsElement",
+            "related": "",
             "params": [
                 {
-                    "description": "Enabled/Disabled the service provider",
-                    "length": 255,
                     "name": "enabled",
-                    "required": true,
-                    "type": "boolean"
+                    "description": "Enabled/Disabled the service provider",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the ID of the ovs provider",
-                    "length": 255,
                     "name": "id",
-                    "related": "configureOvsElement",
+                    "description": "the ID of the ovs provider",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "configureOvsElement"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the account associated with the provider",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the provider",
                     "name": "domainid",
+                    "description": "the domain ID associated with the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the id of the ovs",
-                    "name": "id",
+                    "name": "account",
+                    "description": "the account associated with the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the domain associated with the provider",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network service provider id of the provider",
-                    "name": "nspid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the ipaddress",
                     "name": "projectid",
+                    "description": "the project id of the ipaddress",
                     "type": "string"
                 },
                 {
-                    "description": "Enabled/Disabled the service provider",
+                    "name": "domain",
+                    "description": "the domain associated with the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the ovs",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the address",
+                    "type": "string"
+                },
+                {
+                    "name": "nspid",
+                    "description": "the physical network service provider id of the provider",
+                    "type": "string"
+                },
+                {
                     "name": "enabled",
+                    "description": "Enabled/Disabled the service provider",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Adds S3 Image Store",
-            "isasync": false,
-            "name": "addImageStoreS3",
+            "name": "assignToGlobalLoadBalancerRule",
+            "description": "Assign load balancer rule or list of load balancer rules to a global load balancer rules.",
+            "isasync": true,
             "params": [
                 {
-                    "description": "Socket timeout (milliseconds)",
+                    "name": "loadbalancerrulelist",
+                    "description": "the list load balancer rules that will be assigned to global load balancer rule",
+                    "type": "list",
                     "length": 255,
-                    "name": "sockettimeout",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Use HTTPS instead of HTTP",
-                    "length": 255,
-                    "name": "usehttps",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Signer Algorithm to use, either S3SignerType or AWSS3V4SignerType",
-                    "length": 255,
-                    "name": "s3signer",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "S3 endpoint",
-                    "length": 255,
-                    "name": "endpoint",
                     "required": true,
-                    "type": "string"
+                    "related": ""
                 },
                 {
-                    "description": "S3 access key",
+                    "name": "gslblbruleweightsmap",
+                    "description": "Map of LB rule id's and corresponding weights (between 1-100) in the GSLB rule, if not specified weight of a LB rule is defaulted to 1. Specified as 'gslblbruleweightsmap[0].loadbalancerid=UUID&gslblbruleweightsmap[0].weight=10'",
+                    "type": "map",
                     "length": 255,
-                    "name": "accesskey",
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the global load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Name of the storage bucket",
-                    "length": 255,
-                    "name": "bucket",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "S3 secret key",
-                    "length": 255,
-                    "name": "secretkey",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Maximum number of times to retry on error",
-                    "length": 255,
-                    "name": "maxerrorretry",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Whether TCP keep-alive is used",
-                    "length": 255,
-                    "name": "usetcpkeepalive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Connection TTL (milliseconds)",
-                    "length": 255,
-                    "name": "connectionttl",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Connection timeout (milliseconds)",
-                    "length": 255,
-                    "name": "connectiontimeout",
-                    "required": false,
-                    "type": "integer"
+                    "related": ""
                 }
             ],
-            "related": "listImageStores",
             "response": [
                 {
-                    "description": "the provider name of the image store",
-                    "name": "providername",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the image store",
-                    "name": "id",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "uploadTemplateDirectDownloadCertificate",
+            "description": "Upload a certificate for HTTPS direct template download on KVM hosts",
+            "since": "4.11.0",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor type",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
+                    "name": "name",
+                    "description": "Name for the uploaded certificate",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the Zone name of the image store",
-                    "name": "zonename",
-                    "type": "string"
+                    "name": "certificate",
+                    "description": "SSL certificate",
+                    "type": "string",
+                    "length": 65535,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the Zone ID of the image store",
-                    "name": "zoneid",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addImageStoreS3",
+            "description": "Adds S3 Image Store",
+            "since": "4.7.0",
+            "isasync": false,
+            "related": "listImageStores",
+            "params": [
+                {
+                    "name": "usetcpkeepalive",
+                    "description": "Whether TCP keep-alive is used",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the protocol of the image store",
+                    "name": "connectiontimeout",
+                    "description": "Connection timeout (milliseconds)",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "sockettimeout",
+                    "description": "Socket timeout (milliseconds)",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "accesskey",
+                    "description": "S3 access key",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "s3signer",
+                    "description": "Signer Algorithm to use, either S3SignerType or AWSS3V4SignerType",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "endpoint",
+                    "description": "S3 endpoint",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "maxerrorretry",
+                    "description": "Maximum number of times to retry on error",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "secretkey",
+                    "description": "S3 secret key",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "connectionttl",
+                    "description": "Connection TTL (milliseconds)",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "usehttps",
+                    "description": "Use HTTPS instead of HTTP",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "bucket",
+                    "description": "Name of the storage bucket",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
                     "name": "protocol",
+                    "description": "the protocol of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the scope of the image store",
                     "name": "scope",
+                    "description": "the scope of the image store",
                     "type": "scopetype"
                 },
                 {
-                    "description": "the name of the image store",
-                    "name": "name",
+                    "name": "zoneid",
+                    "description": "the Zone ID of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
+                    "name": "id",
+                    "description": "the ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "url",
+                    "description": "the url of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "providername",
+                    "description": "the provider name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the image store",
+                    "type": "string"
                 }
-            ],
-            "since": "4.7.0"
+            ]
         },
         {
-            "description": "Creates a physical network",
-            "isasync": true,
             "name": "createPhysicalNetwork",
+            "description": "Creates a physical network",
+            "since": "3.0.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the name of the physical network",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the speed for the physical network[1G/10G]",
-                    "length": 255,
-                    "name": "networkspeed",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the VLAN for the physical network",
-                    "length": 255,
-                    "name": "vlan",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the physical network",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "domain ID of the account owning a physical network",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the isolation method for the physical network[VLAN/L3/GRE]",
-                    "length": 255,
-                    "name": "isolationmethods",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "Tag the physical network",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "list"
-                },
-                {
-                    "description": "the broadcast domain range for the physical network[Pod or Zone]. In Acton release it can be Zone only in Advance zone, and Pod in Basic",
-                    "length": 255,
                     "name": "broadcastdomainrange",
+                    "description": "the broadcast domain range for the physical network[Pod or Zone]. In Acton release it can be Zone only in Advance zone, and Pod in Basic",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "tags",
+                    "description": "Tag the physical network",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "domain ID of the account owning a physical network",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listDomains"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the physical network",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listZones"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the physical network",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "vlan",
+                    "description": "the VLAN for the physical network",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "networkspeed",
+                    "description": "the speed for the physical network[1G/10G]",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isolationmethods",
+                    "description": "the isolation method for the physical network[VLAN/L3/GRE]",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "zone id of the physical network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the physical network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the uuid of the physical network",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the physical network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "comma separated tag",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "Broadcast domain range of the physical network",
-                    "name": "broadcastdomainrange",
-                    "type": "string"
-                },
-                {
-                    "description": "the vlan of the physical network",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the physical network",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of the physical network",
                     "name": "networkspeed",
+                    "description": "the speed of the physical network",
                     "type": "string"
                 },
                 {
-                    "description": "isolation methods",
+                    "name": "tags",
+                    "description": "comma separated tag",
+                    "type": "string"
+                },
+                {
+                    "name": "broadcastdomainrange",
+                    "description": "Broadcast domain range of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the vlan of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the physical network",
+                    "type": "string"
+                },
+                {
                     "name": "isolationmethods",
+                    "description": "isolation methods",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the uuid of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "state of the physical network",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the physical network owner",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "listAutoScaleVmGroups",
             "description": "Lists autoscale vm groups.",
             "isasync": false,
-            "name": "listAutoScaleVmGroups",
+            "related": "",
             "params": [
                 {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the autoscale vm group",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listAutoScaleVmGroups",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the availability zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the policy",
-                    "length": 255,
-                    "name": "policyid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the loadbalancer",
-                    "length": 255,
-                    "name": "lbruleid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the profile",
-                    "length": 255,
                     "name": "vmprofileid",
-                    "related": "createAutoScaleVmProfile",
+                    "description": "the ID of the profile",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "createAutoScaleVmProfile"
                 },
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "list objects by project",
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
                     "length": 255,
-                    "name": "projectid",
-                    "related": "activateProject",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "list only resources belonging to the domain specified",
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the autoscale vm group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listAutoScaleVmGroups"
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "policyid",
+                    "description": "the ID of the policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the availability zone ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listZones"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the loadbalancer",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
                     "name": "domainid",
-                    "related": "listDomains",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject"
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
-                    "name": "maxmembers",
-                    "type": "int"
-                },
-                {
-                    "description": "the frequency at which the conditions have to be evaluated",
-                    "name": "interval",
-                    "type": "int"
-                },
-                {
-                    "description": "the account owning the instance group",
-                    "name": "account",
+                    "name": "projectid",
+                    "description": "the project id vm profile",
                     "type": "string"
                 },
                 {
-                    "description": "the autoscale vm group ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale profile that contains information about the vms in the vm group.",
-                    "name": "vmprofileid",
-                    "type": "string"
-                },
-                {
-                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
-                    "name": "minmembers",
-                    "type": "int"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of scaledown autoscale policies",
-                    "name": "scaledownpolicies",
-                    "type": "list"
-                },
-                {
-                    "description": "list of scaleup autoscale policies",
-                    "name": "scaleuppolicies",
-                    "type": "list"
-                },
-                {
-                    "description": "is group for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is group for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the domain name of the vm profile",
+                    "name": "vmprofileid",
+                    "description": "the autoscale profile that contains information about the vms in the vm group.",
+                    "type": "string"
+                },
+                {
                     "name": "domain",
+                    "description": "the domain name of the vm profile",
                     "type": "string"
                 },
                 {
-                    "description": "the project id vm profile",
-                    "name": "projectid",
+                    "name": "minmembers",
+                    "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.",
+                    "type": "int"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the vm profile",
-                    "name": "project",
+                    "name": "id",
+                    "description": "the autoscale vm group ID",
                     "type": "string"
                 },
                 {
-                    "description": "the load balancer rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the current state of the AutoScale Vm Group",
                     "name": "state",
+                    "description": "the current state of the AutoScale Vm Group",
                     "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "scaleuppolicies",
+                    "description": "list of scaleup autoscale policies",
+                    "type": "list"
+                },
+                {
+                    "name": "scaledownpolicies",
+                    "description": "list of scaledown autoscale policies",
+                    "type": "list"
+                },
+                {
+                    "name": "maxmembers",
+                    "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.",
+                    "type": "int"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "interval",
+                    "description": "the frequency at which the conditions have to be evaluated",
+                    "type": "int"
                 }
             ]
         },
         {
+            "name": "createFirewallRule",
             "description": "Creates a firewall rule for a given IP address",
             "isasync": true,
-            "name": "createFirewallRule",
+            "related": "updateEgressFirewallRule",
             "params": [
                 {
-                    "description": "the ending port of firewall rule",
-                    "length": 255,
-                    "name": "endport",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "type of firewallrule: system/user",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "type of the ICMP message being sent",
-                    "length": 255,
-                    "name": "icmptype",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "length": 255,
-                    "name": "icmpcode",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the IP address id of the port forwarding rule",
-                    "length": 255,
-                    "name": "ipaddressid",
-                    "related": "associateIpAddress,listPublicIpAddresses",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.",
-                    "length": 255,
-                    "name": "protocol",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the starting port of firewall rule",
-                    "length": 255,
                     "name": "startport",
-                    "required": false,
-                    "type": "integer"
+                    "description": "the starting port of firewall rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the CIDR list to forward traffic from",
+                    "name": "ipaddressid",
+                    "description": "the IP address id of the port forwarding rule",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "listPublicIpAddresses,associateIpAddress"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "type",
+                    "description": "type of firewallrule: system/user",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of firewall rule",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "cidrlist",
+                    "description": "the CIDR list to forward traffic from",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the ICMP message being sent",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "since": "4.4"
                 }
             ],
-            "related": "updateEgressFirewallRule",
             "response": [
                 {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the firewall rule",
-                    "name": "ipaddressid",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "the network id of the firewall rule",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the protocol of the firewall rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address for the firewall rule",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the ending port of firewall rule's port range",
-                    "name": "endport",
-                    "type": "integer"
-                },
-                {
-                    "description": "the starting port of firewall rule's port range",
                     "name": "startport",
+                    "description": "the starting port of firewall rule's port range",
                     "type": "integer"
                 },
                 {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the firewall rule",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the firewall rule",
                     "name": "id",
+                    "description": "the ID of the firewall rule",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with the rule",
+                    "name": "endport",
+                    "description": "the ending port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
                             "name": "projectid",
+                            "description": "the project id the tag belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
                             "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
                             "name": "customer",
+                            "description": "customer associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the domain associated with the tag",
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
                             "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "resource type",
                             "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "destcidrlist",
+                    "description": "the cidr list to forward traffic to",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the public ip address for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "createVolume",
             "description": "Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.",
             "isasync": true,
-            "name": "createVolume",
+            "related": "listVolumes,detachVolume,attachVolume,resizeVolume,createVolume,updateVolume,migrateVolume,uploadVolume",
             "params": [
                 {
-                    "description": "an optional field, whether to display the volume to the end user or not.",
-                    "length": 255,
-                    "name": "displayvolume",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the disk volume",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the disk offering. If used with the account parameter returns the disk volume associated with the account for the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the snapshot ID for the disk volume. Either diskOfferingId or snapshotId must be passed in.",
-                    "length": 255,
-                    "name": "snapshotid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the account associated with the disk volume. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering. Either diskOfferingId or snapshotId must be passed in.",
-                    "length": 255,
-                    "name": "diskofferingid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the availability zone",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine; to be used with snapshot Id, VM to which the volume gets attached after creation",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
+                    "name": "maxiops",
                     "description": "max iops",
+                    "type": "long",
                     "length": 255,
-                    "name": "maxiops",
-                    "required": false,
-                    "type": "long"
+                    "required": false
                 },
                 {
-                    "description": "Arbitrary volume size",
-                    "length": 255,
-                    "name": "size",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the project associated with the volume. Mutually exclusive with account parameter",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "min iops",
-                    "length": 255,
-                    "name": "miniops",
-                    "required": false,
-                    "type": "long"
-                }
-            ],
-            "related": "updateVolume,listVolumes,uploadVolume,attachVolume,detachVolume,resizeVolume,migrateVolume,createVolume",
-            "response": [
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "min iops of the disk volume",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the availability zone",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
-                    "name": "deviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "Hypervisor the volume belongs to",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the disk volume",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the volume is extractable, false otherwise",
-                    "name": "isextractable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field whether to the display the volume to the end user or not.",
-                    "name": "displayvolume",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
                     "name": "domainid",
-                    "type": "string"
+                    "description": "the domain ID associated with the disk offering. If used with the account parameter returns the disk volume associated with the account for the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
                 },
                 {
-                    "description": "name of the disk offering",
-                    "name": "diskofferingname",
-                    "type": "string"
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine; to be used with snapshot Id, VM to which the volume gets attached after creation",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the date the volume was attached to a VM instance",
-                    "name": "attached",
-                    "type": "date"
-                },
-                {
-                    "description": "ID of the service offering for root disk",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the display text of the service offering for root disk",
-                    "name": "serviceofferingdisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the snapshot from which this volume was created",
-                    "name": "snapshotid",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the primary storage hosting the disk volume",
-                    "name": "storage",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
-                    "name": "storageid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the availability zone",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "display name of the virtual machine",
-                    "name": "vmdisplayname",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes write rate of the disk volume",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "io requests read rate of the disk volume",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the boolean state of whether the volume is destroyed or not",
-                    "name": "destroyed",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date the disk volume was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "max iops of the disk volume",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the service offering for root disk",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "shared or local storage",
-                    "name": "storagetype",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the virtual machine",
-                    "name": "vmname",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the disk volume (ROOT or DATADISK)",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "size of the disk volume",
-                    "name": "size",
-                    "type": "long"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes read rate of the disk volume",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "io requests write rate of the disk volume",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "ID of the disk offering",
                     "name": "diskofferingid",
-                    "type": "string"
+                    "description": "the ID of the disk offering. Either diskOfferingId or snapshotId must be passed in.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
                 },
                 {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
+                    "name": "displayvolume",
+                    "description": "an optional field, whether to display the volume to the end user or not.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "state of the virtual machine",
-                    "name": "vmstate",
-                    "type": "string"
+                    "name": "account",
+                    "description": "the account associated with the disk volume. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "ID of the disk volume",
-                    "name": "id",
-                    "type": "string"
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the path of the volume",
-                    "name": "path",
-                    "type": "string"
+                    "name": "snapshotid",
+                    "description": "the snapshot ID for the disk volume. Either diskOfferingId or snapshotId must be passed in.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
                 },
                 {
-                    "description": "the display text of the disk offering",
-                    "name": "diskofferingdisplaytext",
-                    "type": "string"
+                    "name": "miniops",
+                    "description": "min iops",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the project id of the vpn",
+                    "name": "size",
+                    "description": "Arbitrary volume size",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availability zone",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listZones"
+                },
+                {
                     "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "need quiesce vm or not when taking snapshot",
-                    "name": "quiescevm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the chain info of the volume",
-                    "name": "chaininfo",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the virtual machine",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the disk volume",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the status of the volume",
-                    "name": "status",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "lists network that are using a F5 load balancer device",
-            "isasync": false,
-            "name": "listF5LoadBalancerNetworks",
-            "params": [
-                {
-                    "description": "",
+                    "description": "the project associated with the volume. Mutually exclusive with account parameter",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "pagesize",
                     "required": false,
-                    "type": "integer"
+                    "related": "activateProject"
                 },
                 {
-                    "description": "",
+                    "name": "name",
+                    "description": "the name of the disk volume",
+                    "type": "string",
                     "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "f5 load balancer device ID",
-                    "length": 255,
-                    "name": "lbdeviceid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 }
             ],
-            "related": "updateNetwork,createNetwork,listNetworks",
             "response": [
                 {
-                    "description": "the cidr of IPv6 network",
-                    "name": "ip6cidr",
-                    "type": "string"
+                    "name": "miniops",
+                    "description": "min iops of the disk volume",
+                    "type": "long"
                 },
                 {
-                    "description": "broadcast uri of the network. This parameter is visible to ROOT admins only",
-                    "name": "broadcasturi",
-                    "type": "string"
-                },
-                {
-                    "description": "The vlan of the network. This parameter is visible to ROOT admins only",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "Broadcast domain type of the network",
-                    "name": "broadcastdomaintype",
-                    "type": "string"
-                },
-                {
-                    "description": "true if network can span multiple zones",
-                    "name": "strechedl2subnet",
+                    "name": "quiescevm",
+                    "description": "need quiesce vm or not when taking snapshot",
                     "type": "boolean"
                 },
                 {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes",
-                    "name": "reservediprange",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the network offering the network is created from",
-                    "name": "networkofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "true network requires restart",
-                    "name": "restartrequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if network is system, false otherwise",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the network owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the second DNS for the network",
-                    "name": "dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "network offering id the network is created from",
-                    "name": "networkofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE",
-                    "name": "networkcidr",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with network",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the traffic type of the network",
-                    "name": "traffictype",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the network",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the displaytext of the network",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner of the network",
                     "name": "account",
+                    "description": "the account associated with the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans",
-                    "name": "zonesnetworkspans",
-                    "type": "set"
-                },
-                {
-                    "description": "acl type - access type to the network",
-                    "name": "acltype",
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes.",
                     "type": "string"
                 },
                 {
-                    "description": "the first DNS for the network",
-                    "name": "dns1",
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
+                    "name": "virtualmachineid",
+                    "description": "id of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if network supports specifying ip ranges, false otherwise",
-                    "name": "specifyipranges",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the network",
-                    "name": "name",
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "type": "string"
                 },
                 {
-                    "description": "ACL Id associated with the VPC network",
-                    "name": "aclid",
+                    "name": "storageid",
+                    "description": "id of the primary storage hosting the disk volume; returned to admin user only",
                     "type": "string"
                 },
                 {
-                    "description": "the network's gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "state of the network",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of IPv6 network",
-                    "name": "ip6gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of the network",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if users from subdomains can access the domain level network",
-                    "name": "subdomainaccess",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the id of the network",
                     "name": "id",
+                    "description": "ID of the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "availability of the network offering the network is created from",
-                    "name": "networkofferingavailability",
+                    "name": "physicalsize",
+                    "description": "the bytes alloaated",
+                    "type": "long"
+                },
+                {
+                    "name": "created",
+                    "description": "the date the disk volume was created",
+                    "type": "date"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "list networks available for vm deployment",
-                    "name": "canusefordeploy",
+                    "name": "vmname",
+                    "description": "name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "storage",
+                    "description": "name of the primary storage hosting the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "Hypervisor the volume belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvolume",
+                    "description": "an optional field whether to the display the volume to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the project name of the address",
-                    "name": "project",
+                    "name": "state",
+                    "description": "the state of the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "VPC the network belongs to",
-                    "name": "vpcid",
+                    "name": "vmstate",
+                    "description": "state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the network's netmask",
-                    "name": "netmask",
+                    "name": "storagetype",
+                    "description": "shared or local storage",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the zone the network belongs to",
+                    "name": "attached",
+                    "description": "the date the volume was attached to a VM instance",
+                    "type": "date"
+                },
+                {
+                    "name": "destroyed",
+                    "description": "the boolean state of whether the volume is destroyed or not",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "name of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "zonename",
+                    "description": "name of the availability zone",
                     "type": "string"
                 },
                 {
-                    "description": "the network domain",
-                    "name": "networkdomain",
+                    "name": "project",
+                    "description": "the project name of the vpn",
                     "type": "string"
                 },
                 {
-                    "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR",
-                    "name": "cidr",
+                    "name": "path",
+                    "description": "the path of the volume",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field, whether to the display the network to the end user or not.",
-                    "name": "displaynetwork",
+                    "name": "isextractable",
+                    "description": "true if the volume is extractable, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if network offering is ip conserve mode enabled",
-                    "name": "networkofferingconservemode",
-                    "type": "boolean"
-                },
-                {
-                    "description": "list networks that are persistent",
-                    "name": "ispersistent",
-                    "type": "boolean"
-                },
-                {
-                    "description": "display text of the network offering the network is created from",
-                    "name": "networkofferingdisplaytext",
+                    "name": "serviceofferingid",
+                    "description": "ID of the service offering for root disk",
                     "type": "string"
                 },
                 {
-                    "description": "related to what other network configuration",
-                    "name": "related",
+                    "name": "diskofferingdisplaytext",
+                    "description": "the display text of the disk offering",
                     "type": "string"
                 },
                 {
-                    "description": "the list of services",
-                    "name": "service",
-                    "response": [
-                        {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the service provider name",
-                            "name": "provider",
-                            "response": [
-                                {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the provider name",
-                                    "name": "name",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "services for this provider",
-                                    "name": "servicelist",
-                                    "type": "list"
-                                }
-                            ],
-                            "type": "list"
-                        }
-                    ],
-                    "type": "list"
+                    "name": "podid",
+                    "description": "pod id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "size",
+                    "description": "size of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "cluster id of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "clustername",
+                    "description": "cluster name where the volume is allocated",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualsize",
+                    "description": "the bytes actually consumed on disk",
+                    "type": "long"
+                },
+                {
+                    "name": "status",
+                    "description": "the status of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "ID of the disk offering",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "type of the disk volume (ROOT or DATADISK)",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "pod name of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "name of the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "chaininfo",
+                    "description": "the chain info of the volume",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingdisplaytext",
+                    "description": "the display text of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "max iops of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "vmdisplayname",
+                    "description": "display name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "utilization",
+                    "description": "the disk utilization",
+                    "type": "string"
+                },
+                {
+                    "name": "deviceid",
+                    "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.",
+                    "type": "long"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotid",
+                    "description": "ID of the snapshot from which this volume was created",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "name of the service offering for root disk",
+                    "type": "string"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the disk volume",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "ID of the availability zone",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "List virtual machine snapshot by conditions",
-            "isasync": false,
             "name": "listVMSnapshot",
+            "description": "List virtual machine snapshot by conditions",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "createVMSnapshot",
             "params": [
                 {
-                    "description": "the ID of the vm",
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "the ID of the vm",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "state of the virtual machine snapshot",
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
                     "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "state",
-                    "required": false,
-                    "type": "string"
+                    "description": "state of the virtual machine snapshot",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
                     "name": "projectid",
-                    "related": "activateProject",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "activateProject"
                 },
                 {
-                    "description": "The ID of the VM snapshot",
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "lists snapshot by snapshot name or display name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "vmsnapshotid",
-                    "related": "createVMSnapshot,listVMSnapshot",
+                    "description": "The ID of the VM snapshot",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listVMSnapshot,createVMSnapshot"
                 },
                 {
-                    "description": "the IDs of the vm snapshots, mutually exclusive with vmsnapshotid",
-                    "length": 255,
                     "name": "vmsnapshotids",
-                    "related": "createVMSnapshot,listVMSnapshot",
+                    "description": "the IDs of the vm snapshots, mutually exclusive with vmsnapshotid",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
                     "since": "4.9",
-                    "type": "list"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists snapshot by snapshot name or display name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "related": "listVMSnapshot,createVMSnapshot"
                 }
             ],
-            "related": "createVMSnapshot",
             "response": [
                 {
-                    "description": "the parent ID of the vm snapshot",
-                    "name": "parent",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the vm snapshot",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the disk volume",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "VM Snapshot type",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the vm snapshot",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the vm snapshot",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the parent displayName of the vm snapshot",
                     "name": "parentName",
+                    "description": "the parent displayName of the vm snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the vm ID of the vm snapshot",
+                    "name": "account",
+                    "description": "the account associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
                     "name": "virtualmachineid",
+                    "description": "the vm ID of the vm snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the display name of the vm snapshot",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "indiates if this is current snapshot",
-                    "name": "current",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the vm snapshot",
                     "name": "name",
+                    "description": "the name of the vm snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the vm snapshot",
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "parent",
+                    "description": "the parent ID of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the create date of the vm snapshot",
+                    "type": "date"
+                },
+                {
+                    "name": "displayname",
+                    "description": "the display name of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the vm snapshot",
                     "type": "state"
                 },
                 {
-                    "description": "the create date of the vm snapshot",
-                    "name": "created",
-                    "type": "date"
+                    "name": "current",
+                    "description": "indiates if this is current snapshot",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
+                    "name": "type",
+                    "description": "VM Snapshot type",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
                     "name": "project",
+                    "description": "the project name of the vpn",
                     "type": "string"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "updatePod",
             "description": "Updates a Pod.",
             "isasync": false,
-            "name": "updatePod",
+            "related": "createManagementNetworkIpRange",
             "params": [
                 {
-                    "description": "Allocation state of this cluster for allocation of new resources",
-                    "length": 255,
                     "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
+                    "description": "Allocation state of this cluster for allocation of new resources",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ID of the Pod",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updatePod",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the netmask of the Pod",
-                    "length": 255,
-                    "name": "netmask",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the ending IP address for the Pod",
-                    "length": 255,
-                    "name": "endip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway for the Pod",
-                    "length": 255,
-                    "name": "gateway",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the starting IP address for the Pod",
-                    "length": 255,
                     "name": "startip",
-                    "required": false,
-                    "type": "string"
+                    "description": "the starting IP address for the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the name of the Pod",
+                    "name": "netmask",
+                    "description": "the netmask of the Pod",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the Pod",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createManagementNetworkIpRange,updatePod"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP address for the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "the name of the Pod",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the netmask of the Pod",
                     "name": "netmask",
+                    "description": "the netmask of the Pod",
                     "type": "string"
                 },
                 {
-                    "description": "the ending IP for the Pod",
-                    "name": "endip",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway of the Pod",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the starting IP for the Pod",
-                    "name": "startip",
-                    "type": "string"
-                },
-                {
-                    "description": "the capacity of the Pod",
                     "name": "capacity",
+                    "description": "the capacity of the Pod",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
-                            "type": "string"
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
+                            "type": "long"
                         },
                         {
-                            "description": "the Zone name",
-                            "name": "zonename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone ID",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity type",
-                            "name": "type",
-                            "type": "short"
-                        },
-                        {
-                            "description": "the percentage of capacity currently in use",
                             "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
                             "type": "string"
                         },
                         {
-                            "description": "the Cluster name",
-                            "name": "clustername",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Pod ID",
                             "name": "podid",
+                            "description": "the Pod ID",
                             "type": "string"
                         },
                         {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Pod name",
-                            "name": "podname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity currently in use",
                             "name": "capacityused",
+                            "description": "the capacity currently in use",
                             "type": "long"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podname",
+                            "description": "the Pod name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the capacity type",
+                            "type": "short"
                         }
-                    ],
+                    ]
+                },
+                {
+                    "name": "startip",
+                    "description": "the starting IP for the Pod",
                     "type": "list"
                 },
                 {
-                    "description": "the Zone ID of the Pod",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the allocation state of the Pod",
                     "name": "allocationstate",
+                    "description": "the allocation state of the Pod",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name of the Pod",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Pod",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the Pod",
                     "name": "id",
+                    "description": "the ID of the Pod",
                     "type": "string"
+                },
+                {
+                    "name": "forsystemvms",
+                    "description": "indicates if range is dedicated for CPVM and SSVM",
+                    "type": "list"
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP for the Pod",
+                    "type": "list"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "vlanid",
+                    "description": "indicates Vlan ID for the range",
+                    "type": "list"
                 }
             ]
         },
         {
+            "name": "attachIso",
             "description": "Attaches an ISO to a virtual machine.",
             "isasync": true,
-            "name": "attachIso",
+            "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "the ID of the virtual machine",
-                    "length": 255,
                     "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,attachIso,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "the ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "the ID of the ISO file",
-                    "length": 255,
                     "name": "id",
-                    "related": "copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
+                    "description": "the ID of the ISO file",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listIsos,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
                 }
             ],
-            "related": "resetSSHKeyForVirtualMachine,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
                     "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
+
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the number of cpu this virtual machine is running with",
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
                     "type": "integer"
                 },
                 {
-                    "description": "list of security groups associated with the virtual machine",
                     "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the ID of the security group",
-                            "name": "id",
+                            "name": "account",
+                            "description": "the account owning the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
                         },
                         {
-                            "description": "the list of resource tags associated with the rule",
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
                             "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
                             "response": [
                                 {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
                                     "name": "domain",
+                                    "description": "the domain associated with the tag",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "tag key name",
-                                    "name": "key",
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "tag value",
                                     "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
                                     "type": "string"
                                 }
-                            ],
+                            ]
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
                             "type": "set"
                         },
                         {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
+                            "name": "project",
+                            "description": "the project name of the group",
                             "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                }
+                            ]
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with vm",
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
                     "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
                             "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
                     "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the name of the affinity group",
-                            "name": "name",
+                            "name": "project",
+                            "description": "the project name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "virtual machine IDs associated with this affinity group",
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
                             "type": "list"
                         },
                         {
-                            "description": "the description of the affinity group",
-                            "name": "description",
+                            "name": "name",
+                            "description": "the name of the affinity group",
                             "type": "string"
                         },
                         {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
                             "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
+                            "description": "the domain ID of the affinity group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
                     "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
                     "type": "integer"
                 },
                 {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
                     "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
                 }
             ]
         },
         {
-            "description": "Disassociates an IP address from the account.",
-            "isasync": true,
-            "name": "disassociateIpAddress",
-            "params": [
-                {
-                    "description": "the ID of the public IP address to disassociate",
-                    "length": 255,
-                    "name": "id",
-                    "related": "associateIpAddress,listPublicIpAddresses",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
+            "name": "listBaremetalDhcp",
             "description": "list baremetal dhcp servers",
             "isasync": false,
-            "name": "listBaremetalDhcp",
+            "related": "",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Type of DHCP device",
-                    "length": 255,
-                    "name": "dhcpservertype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "DHCP server device ID",
-                    "length": 255,
                     "name": "id",
-                    "required": false,
-                    "type": "long"
+                    "description": "DHCP server device ID",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dhcpservertype",
+                    "description": "Type of DHCP device",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "name of the provider",
-                    "name": "dhcpservertype",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this external dhcp device belongs to",
                     "name": "physicalnetworkid",
+                    "description": "the physical network to which this external dhcp device belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "name of the provider",
                     "name": "provider",
+                    "description": "name of the provider",
                     "type": "string"
                 },
                 {
-                    "description": "device id of ",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "url",
                     "name": "url",
+                    "description": "url",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "device id of ",
+                    "type": "string"
+                },
+                {
+                    "name": "dhcpservertype",
+                    "description": "name of the provider",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Migrate A VM from XenServer to Cloudstack",
+            "name": "disassociateIpAddress",
+            "description": "Disassociates an IP address from the account.",
             "isasync": true,
-            "name": "tmMigrateVirtualMachine",
             "params": [
                 {
-                    "description": "Ticketmaster inventory product code",
+                    "name": "id",
+                    "description": "the ID of the public IP address to disassociate",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "productcode",
                     "required": true,
-                    "type": "string"
-                },
+                    "related": "listPublicIpAddresses,associateIpAddress"
+                }
+            ],
+            "response": [
                 {
-                    "description": "Force migration for Unicorns and VMs with Secondary/Local block devices",
-                    "length": 255,
-                    "name": "forced",
-                    "required": false,
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "Hostname of VM running in Xen",
-                    "length": 255,
-                    "name": "hostname",
-                    "required": true,
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
-            ],
-            "related": "",
-            "response": [
-
             ]
         },
         {
+            "name": "enableStorageMaintenance",
             "description": "Puts storage pool into maintenance state",
             "isasync": true,
-            "name": "enableStorageMaintenance",
+            "related": "cancelStorageMaintenance",
             "params": [
                 {
-                    "description": "Primary storage ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "enableStorageMaintenance,cancelStorageMaintenance",
+                    "description": "Primary storage ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "cancelStorageMaintenance,enableStorageMaintenance"
                 }
             ],
-            "related": "cancelStorageMaintenance",
             "response": [
                 {
-                    "description": "the hypervisor type of the storage pool",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the cluster for the storage pool",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "the scope of the storage pool",
-                    "name": "scope",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the storage pool",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the Pod name of the storage pool",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the storage pool",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the cluster for the storage pool",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the storage pool",
                     "name": "state",
+                    "description": "the state of the storage pool",
                     "type": "storagepoolstatus"
                 },
                 {
-                    "description": "the name of the storage pool",
-                    "name": "name",
+                    "name": "clusterid",
+                    "description": "the ID of the cluster for the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod ID of the storage pool",
-                    "name": "podid",
+                    "name": "tags",
+                    "description": "the tags for the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the storage pool",
-                    "name": "id",
+                    "name": "ipaddress",
+                    "description": "the IP address of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the storage pool path",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently used disk size",
                     "name": "disksizeused",
+                    "description": "the host's currently used disk size",
                     "type": "long"
                 },
                 {
-                    "description": "the overprovisionfactor for the storage pool",
-                    "name": "overprovisionfactor",
+                    "name": "podid",
+                    "description": "the Pod ID of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
+                    "name": "overprovisionfactor",
+                    "description": "the overprovisionfactor for the storage pool",
+                    "type": "string"
                 },
                 {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
+                    "name": "type",
+                    "description": "the storage pool type",
+                    "type": "string"
                 },
                 {
-                    "description": "IOPS CloudStack can provision from this storage pool",
                     "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
                     "type": "long"
                 },
                 {
-                    "description": "the storage pool capabilities",
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "provider",
+                    "description": "Storage provider for this pool",
+                    "type": "string"
+                },
+                {
                     "name": "storagecapabilities",
+                    "description": "the storage pool capabilities",
                     "type": "map"
                 },
                 {
-                    "description": "the Zone ID of the storage pool",
-                    "name": "zoneid",
+                    "name": "name",
+                    "description": "the name of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name of the storage pool",
-                    "name": "zonename",
+                    "name": "hypervisor",
+                    "description": "the hypervisor type of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the storage pool type",
-                    "name": "type",
+                    "name": "path",
+                    "description": "the storage pool path",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the storage pool was created",
+                    "name": "suitableformigration",
+                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the storage pool",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date and time the storage pool was created",
                     "type": "date"
                 },
                 {
-                    "description": "the tags for the storage pool",
-                    "name": "tags",
+                    "name": "allocatediops",
+                    "description": "total min IOPS currently in use by volumes",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the name of the cluster for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "scope",
+                    "description": "the scope of the storage pool",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Remove the LDAP context for this site.",
-            "isasync": false,
             "name": "ldapRemove",
+            "description": "(Deprecated , use deleteLdapConfiguration) Remove the LDAP context for this site.",
+            "since": "3.0.1",
+            "isasync": false,
+            "related": "",
             "params": [
 
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "You specify a query filter here, which narrows down the users, who can be part of this domain",
-                    "name": "queryfilter",
-                    "type": "string"
-                },
-                {
-                    "description": "The search base defines the starting point for the search in the directory tree Example:  dc=cloud,dc=com",
-                    "name": "searchbase",
-                    "type": "string"
-                },
-                {
-                    "description": "Hostname or ip address of the ldap server eg: my.ldap.com",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "Specify the LDAP port if required, default is 389",
                     "name": "port",
+                    "description": "Specify the LDAP port if required, default is 389",
                     "type": "string"
                 },
                 {
-                    "description": "Specify the distinguished name of a user with the search permission on the directory",
-                    "name": "binddn",
+                    "name": "searchbase",
+                    "description": "The search base defines the starting point for the search in the directory tree Example:  dc=cloud,dc=com",
                     "type": "string"
                 },
                 {
-                    "description": "DN password",
                     "name": "bindpass",
+                    "description": "DN password",
                     "type": "string"
                 },
                 {
-                    "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL",
                     "name": "ssl",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.1"
-        },
-        {
-            "description": "Creates a user for an account that already exists",
-            "isasync": false,
-            "name": "createUser",
-            "params": [
-                {
-                    "description": "email",
-                    "length": 255,
-                    "name": "email",
-                    "required": true,
+                    "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL",
                     "type": "string"
                 },
                 {
-                    "description": "lastname",
-                    "length": 255,
-                    "name": "lastname",
-                    "required": true,
+                    "name": "binddn",
+                    "description": "Specify the distinguished name of a user with the search permission on the directory",
                     "type": "string"
                 },
                 {
-                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
-                    "length": 255,
-                    "name": "timezone",
-                    "required": false,
+                    "name": "hostname",
+                    "description": "Hostname or ip address of the ldap server eg: my.ldap.com",
                     "type": "string"
                 },
                 {
-                    "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Creates the user under the specified domain. Has to be accompanied with the account parameter",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "User UUID, required for adding account from external provisioning system",
-                    "length": 255,
-                    "name": "userid",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Unique username.",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "firstname",
-                    "length": 255,
-                    "name": "firstname",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
-                    "length": 255,
-                    "name": "account",
-                    "required": true,
-                    "type": "string"
-                }
-            ],
-            "related": "getUser",
-            "response": [
-                {
-                    "description": "the user email address",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the user ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the user",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the secret key of the user",
-                    "name": "secretkey",
-                    "type": "string"
-                },
-                {
-                    "description": "true if user is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the boolean value representing if the updating target is in caller's child domain",
-                    "name": "iscallerchilddomain",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the date and time the user account was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the account type of the user",
-                    "name": "accounttype",
-                    "type": "short"
-                },
-                {
-                    "description": "the account ID of the user",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the user",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the user name",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the api key of the user",
-                    "name": "apikey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user firstname",
-                    "name": "firstname",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the role",
-                    "name": "roleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "the timezone user was created in",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the user",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the user state",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role",
-                    "name": "roletype",
+                    "name": "queryfilter",
+                    "description": "You specify a query filter here, which narrows down the users, who can be part of this domain",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "lists all available apis on the server, provided by the Api Discovery plugin",
+            "name": "createUser",
+            "description": "Creates a user for an account that already exists",
             "isasync": false,
-            "name": "listApis",
+            "related": "getUser",
             "params": [
                 {
-                    "description": "API name",
+                    "name": "account",
+                    "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.",
+                    "type": "string",
                     "length": 255,
-                    "name": "name",
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "Unique username.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "password",
+                    "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "Creates the user under the specified domain. Has to be accompanied with the account parameter",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "related": "listDomains"
+                },
+                {
+                    "name": "email",
+                    "description": "email",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "firstname",
+                    "description": "firstname",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "lastname",
+                    "description": "lastname",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "timezone",
+                    "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "userid",
+                    "description": "User UUID, required for adding account from external provisioning system",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "response field type",
-                    "name": "type",
+                    "name": "created",
+                    "description": "the date and time the user account was created",
+                    "type": "date"
+                },
+                {
+                    "name": "lastname",
+                    "description": "the user lastname",
                     "type": "string"
                 },
                 {
-                    "description": "the list params the api accepts",
-                    "name": "params",
+                    "name": "roletype",
+                    "description": "the type of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "apikey",
+                    "description": "the api key of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "usersource",
+                    "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the user state",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the user ID",
+                    "type": "string"
+                },
+                {
+                    "name": "iscallerchilddomain",
+                    "description": "the boolean value representing if the updating target is in caller's child domain",
+                    "type": "boolean"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user name",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "the user email address",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if user is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "firstname",
+                    "description": "the user firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the timezone user was created in",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "the account type of the user",
+                    "type": "short"
+                },
+                {
+                    "name": "secretkey",
+                    "description": "the secret key of the user",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listApis",
+            "description": "lists all available apis on the server, provided by the Api Discovery plugin",
+            "since": "4.1.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "name",
+                    "description": "API name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "isasync",
+                    "description": "true if api is asynchronous",
+                    "type": "boolean"
+                },
+                {
+                    "name": "description",
+                    "description": "description of the api",
+                    "type": "string"
+                },
+                {
+                    "name": "response",
+                    "description": "api response fields",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "comma separated related apis to get the parameter",
-                            "name": "related",
-                            "type": "string"
-                        },
-                        {
-                            "description": "description of the api parameter",
                             "name": "description",
+                            "description": "description of the api response field",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the api parameter",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "version of CloudStack the api was introduced in",
-                            "name": "since",
-                            "type": "string"
-                        },
-                        {
-                            "description": "parameter type",
                             "name": "type",
+                            "description": "response field type",
                             "type": "string"
                         },
                         {
-                            "description": "length of the parameter",
+                            "name": "response",
+                            "description": "api response fields",
+                            "type": "set"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the api response field",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the api command",
+                    "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "response field type",
+                    "type": "string"
+                },
+                {
+                    "name": "related",
+                    "description": "comma separated related apis",
+                    "type": "string"
+                },
+                {
+                    "name": "params",
+                    "description": "the list params the api accepts",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "description",
+                            "description": "description of the api parameter",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "parameter type",
+                            "type": "string"
+                        },
+                        {
                             "name": "length",
+                            "description": "length of the parameter",
                             "type": "int"
                         },
                         {
-                            "description": "true if this parameter is required for the api request",
+                            "name": "since",
+                            "description": "version of CloudStack the api was introduced in",
+                            "type": "string"
+                        },
+                        {
+                            "name": "related",
+                            "description": "comma separated related apis to get the parameter",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the api parameter",
+                            "type": "string"
+                        },
+                        {
                             "name": "required",
+                            "description": "true if this parameter is required for the api request",
                             "type": "boolean"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the name of the api command",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "true if api is asynchronous",
-                    "name": "isasync",
-                    "type": "boolean"
-                },
-                {
-                    "description": "comma separated related apis",
-                    "name": "related",
-                    "type": "string"
-                },
-                {
-                    "description": "api response fields",
-                    "name": "response",
-                    "response": [
-                        {
-                            "description": "api response fields",
-                            "name": "response",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the name of the api response field",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "description of the api response field",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "response field type",
-                            "name": "type",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "description of the api",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "version of CloudStack the api was introduced in",
                     "name": "since",
+                    "description": "version of CloudStack the api was introduced in",
                     "type": "string"
                 }
-            ],
-            "since": "4.1.0"
+            ]
         },
         {
+            "name": "deleteBaremetalRct",
             "description": "deletes baremetal rack configuration text",
             "isasync": true,
-            "name": "deleteBaremetalRct",
             "params": [
                 {
-                    "description": "RCT id",
-                    "length": 255,
                     "name": "id",
-                    "related": "",
+                    "description": "RCT id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "createVpnGateway",
             "description": "Creates site to site vpn local gateway",
             "isasync": true,
-            "name": "createVpnGateway",
+            "related": "",
             "params": [
                 {
-                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "name": "vpcid",
+                    "description": "public ip address id of the vpn gateway",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "required": true,
+                    "related": "updateVPC,createVPC,listVPCs"
                 },
                 {
-                    "description": "public ip address id of the vpn gateway",
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "vpcid",
-                    "related": "updateVPC,listVPCs,createVPC",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false,
+                    "since": "4.4"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the owner",
+                    "name": "project",
+                    "description": "the project name",
+                    "type": "string"
+                },
+                {
                     "name": "account",
+                    "description": "the owner",
                     "type": "string"
                 },
                 {
-                    "description": "is vpn gateway for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the public IP address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the host was removed",
                     "name": "removed",
+                    "description": "the date and time the host was removed",
                     "type": "date"
                 },
                 {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpc id of this gateway",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpn gateway ID",
                     "name": "id",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "the vpc id of this gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpn gateway for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the owner",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the owner",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "addResourceDetail",
             "description": "Adds detail for the Resource.",
             "isasync": true,
-            "name": "addResourceDetail",
             "params": [
                 {
-                    "description": "resource id to create the details for",
-                    "length": 255,
-                    "name": "resourceid",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "type of the resource",
-                    "length": 255,
-                    "name": "resourcetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Map of (key/value pairs)",
-                    "length": 255,
-                    "name": "details",
-                    "required": true,
-                    "type": "map"
-                },
-                {
-                    "description": "pass false if you want this detail to be disabled for the regular user. True by default",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "pass false if you want this detail to be disabled for the regular user. True by default",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
+                },
+                {
+                    "name": "resourcetype",
+                    "description": "type of the resource",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "resourceid",
+                    "description": "resource id to create the details for",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "details",
+                    "description": "Map of (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": true
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Creates snapshot for a vm.",
-            "isasync": true,
             "name": "createVMSnapshot",
+            "description": "Creates snapshot for a vm.",
+            "since": "4.2.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "The description of the snapshot",
-                    "length": 255,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The ID of the vm",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "quiesce vm if true",
-                    "length": 255,
                     "name": "quiescevm",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "quiesce vm if true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "The display name of the snapshot",
+                    "name": "description",
+                    "description": "The description of the snapshot",
+                    "type": "string",
                     "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "snapshot memory if true",
-                    "length": 255,
                     "name": "snapshotmemory",
-                    "required": false,
-                    "type": "boolean"
+                    "description": "snapshot memory if true",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "The display name of the snapshot",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "The ID of the vm",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the parent ID of the vm snapshot",
-                    "name": "parent",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the disk volume",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "VM Snapshot type",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the vm ID of the vm snapshot",
-                    "name": "virtualmachineid",
-                    "type": "string"
-                },
-                {
-                    "description": "indiates if this is current snapshot",
-                    "name": "current",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the description of the vm snapshot",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the vm snapshot",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the parent displayName of the vm snapshot",
-                    "name": "parentName",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the vm snapshot",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the vm snapshot",
-                    "name": "state",
-                    "type": "state"
-                },
-                {
-                    "description": "the account associated with the disk volume",
                     "name": "account",
+                    "description": "the account associated with the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "the domain associated with the disk volume",
-                    "name": "domain",
+                    "name": "parentName",
+                    "description": "the parent displayName of the vm snapshot",
                     "type": "string"
                 },
                 {
-                    "description": "the create date of the vm snapshot",
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the create date of the vm snapshot",
                     "type": "date"
                 },
                 {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the display name of the vm snapshot",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
                     "name": "project",
+                    "description": "the project name of the vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the vm snapshot",
-                    "name": "id",
+                    "name": "displayname",
+                    "description": "the display name of the vm snapshot",
                     "type": "string"
+                },
+                {
+                    "name": "type",
+                    "description": "VM Snapshot type",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the disk volume",
+                    "type": "string"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the vm ID of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "parent",
+                    "description": "the parent ID of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "current",
+                    "description": "indiates if this is current snapshot",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the vm snapshot",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the vm snapshot",
+                    "type": "state"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "listVpnUsers",
             "description": "Lists vpn users",
             "isasync": false,
-            "name": "listVpnUsers",
+            "related": "addVpnUser",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "The uuid of the Vpn user",
+                    "description": "List by keyword",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "listVpnUsers,addVpnUser",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "the username of the vpn user.",
-                    "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
-                },
-                {
+                    "name": "pagesize",
                     "description": "",
+                    "type": "integer",
                     "length": 255,
-                    "name": "page",
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "the username of the vpn user.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "listDomains"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "activateProject"
+                },
+                {
+                    "name": "id",
+                    "description": "The uuid of the Vpn user",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addVpnUser,listVpnUsers"
                 }
             ],
-            "related": "addVpnUser",
             "response": [
                 {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the account of the remote access vpn",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpn userID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the account of the remote access vpn",
                     "name": "domain",
+                    "description": "the domain name of the account of the remote access vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the username of the vpn user",
                     "name": "username",
+                    "description": "the username of the vpn user",
                     "type": "string"
                 },
                 {
-                    "description": "the account of the remote access vpn",
                     "name": "account",
+                    "description": "the account of the remote access vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the Vpn User",
-                    "name": "state",
+                    "name": "id",
+                    "description": "the vpn userID",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the vpn",
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
                     "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the Vpn User",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes a load balancer",
-            "isasync": true,
             "name": "deleteLoadBalancer",
+            "description": "Deletes a load balancer",
+            "since": "4.2.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "the ID of the Load Balancer",
-                    "length": 255,
                     "name": "id",
-                    "related": "",
+                    "description": "the ID of the Load Balancer",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "deleteIpForwardingRule",
             "description": "Deletes an IP forwarding rule",
             "isasync": true,
-            "name": "deleteIpForwardingRule",
             "params": [
                 {
-                    "description": "the ID of the forwarding rule",
-                    "length": 255,
                     "name": "id",
-                    "related": "",
+                    "description": "the ID of the forwarding rule",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "addRegion",
             "description": "Adds a Region",
             "isasync": false,
-            "name": "addRegion",
+            "related": "",
             "params": [
                 {
-                    "description": "Region service endpoint",
-                    "length": 255,
-                    "name": "endpoint",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Name of the region",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "Name of the region",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "Id of the Region",
+                    "name": "endpoint",
+                    "description": "Region service endpoint",
+                    "type": "string",
                     "length": 255,
+                    "required": true
+                },
+                {
                     "name": "id",
-                    "required": true,
-                    "type": "integer"
+                    "description": "Id of the Region",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the name of the region",
-                    "name": "name",
-                    "type": "string"
+                    "name": "portableipserviceenabled",
+                    "description": "true if security groups support is enabled, false otherwise",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the ID of the region",
                     "name": "id",
+                    "description": "the ID of the region",
                     "type": "integer"
                 },
                 {
-                    "description": "the end point of the region",
                     "name": "endpoint",
+                    "description": "the end point of the region",
                     "type": "string"
                 },
                 {
-                    "description": "true if GSLB service is enabled in the region, false otherwise",
                     "name": "gslbserviceenabled",
+                    "description": "true if GSLB service is enabled in the region, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "true if security groups support is enabled, false otherwise",
-                    "name": "portableipserviceenabled",
-                    "type": "boolean"
+                    "name": "name",
+                    "description": "the name of the region",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "generateUsageRecords",
             "description": "Generates usage records. This will generate records only if there any records to be generated, i.e if the scheduled usage job was not run or failed",
             "isasync": false,
-            "name": "generateUsageRecords",
             "params": [
                 {
-                    "description": "Start date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-01.",
-                    "length": 255,
-                    "name": "startdate",
-                    "required": true,
-                    "type": "date"
-                },
-                {
-                    "description": "List events for the specified domain.",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomains",
+                    "description": "List events for the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomains"
                 },
                 {
-                    "description": "End date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-03.",
+                    "name": "startdate",
+                    "description": "Start date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-01.",
+                    "type": "date",
                     "length": 255,
+                    "required": true
+                },
+                {
                     "name": "enddate",
-                    "required": true,
-                    "type": "date"
+                    "description": "End date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-03.",
+                    "type": "date",
+                    "length": 255,
+                    "required": true
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Updates a role permission order",
-            "isasync": false,
             "name": "updateRolePermission",
+            "description": "Updates a role permission order",
+            "since": "4.9.0",
+            "isasync": false,
             "params": [
                 {
-                    "description": "ID of the role",
+                    "name": "permission",
+                    "description": "Rule permission, can be: allow or deny",
+                    "type": "string",
                     "length": 255,
-                    "name": "roleid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false,
+                    "since": "4.11"
                 },
                 {
-                    "description": "The parent role permission uuid, use 0 to move this rule at the top of the list",
-                    "length": 255,
                     "name": "ruleorder",
-                    "related": "",
+                    "description": "The parent role permission uuid, use 0 to move this rule at the top of the list",
+                    "type": "list",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "roleid",
+                    "description": "ID of the role",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "list"
+                    "related": ""
+                },
+                {
+                    "name": "ruleid",
+                    "description": "Role permission rule id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.11",
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 }
-            ],
-            "since": "4.9.0"
+            ]
         },
         {
+            "name": "listSSHKeyPairs",
             "description": "List registered keypairs",
             "isasync": false,
-            "name": "listSSHKeyPairs",
+            "related": "",
             "params": [
                 {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
                     "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "A public key fingerprint to look for",
-                    "length": 255,
                     "name": "fingerprint",
-                    "required": false,
-                    "type": "string"
+                    "description": "A public key fingerprint to look for",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
+                    "required": false
                 },
                 {
-                    "description": "list objects by project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "activateProject",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "A key pair name to look for",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
                     "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "boolean"
+                    "related": "activateProject"
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "A key pair name to look for",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the owner of the keypair",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the keypair owner",
                     "name": "domainid",
+                    "description": "the domain id of the keypair owner",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the keypair owner",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "Name of the keypair",
                     "name": "name",
+                    "description": "Name of the keypair",
                     "type": "string"
                 },
                 {
-                    "description": "Fingerprint of the public key",
+                    "name": "domain",
+                    "description": "the domain name of the keypair owner",
+                    "type": "string"
+                },
+                {
                     "name": "fingerprint",
+                    "description": "Fingerprint of the public key",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the owner of the keypair",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listAccounts",
             "description": "Lists accounts and provides detailed account information for listed accounts",
             "isasync": false,
-            "name": "listAccounts",
+            "related": "enableAccount,listAccounts",
             "params": [
                 {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list accounts by cleanuprequired attribute (values are true or false)",
-                    "length": 255,
-                    "name": "iscleanuprequired",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list account by account ID",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listAccounts,listAccounts,enableAccount",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list accounts by state. Valid states are enabled, disabled, and locked.",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "list account by account name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list accounts by account type. Valid account types are 1 (admin), 2 (domain-admin), and 0 (user).",
-                    "length": 255,
                     "name": "accounttype",
+                    "description": "list accounts by account type. Valid account types are 1 (admin), 2 (domain-admin), and 0 (user).",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "list account by account ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "long"
+                    "related": "listAccounts,enableAccount,listAccounts"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "state",
+                    "description": "list accounts by state. Valid states are enabled, disabled, and locked.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "list accounts by cleanuprequired attribute (values are true or false)",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "list account by account name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listAccounts,enableAccount",
             "response": [
                 {
-                    "description": "the list of acl groups that account belongs to",
-                    "name": "groups",
-                    "type": "list"
+                    "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the network domain",
-                    "name": "networkdomain",
+                    "name": "domain",
+                    "description": "name of the Domain the account belongs too",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of projects the account can own",
-                    "name": "projectlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "account type (admin, domain-admin, user)",
-                    "name": "accounttype",
-                    "type": "short"
-                },
-                {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this account can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of users associated with account",
                     "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the user email address",
-                            "name": "email",
+                            "name": "lastname",
+                            "description": "the user lastname",
                             "type": "string"
                         },
                         {
-                            "description": "the secret key of the user",
-                            "name": "secretkey",
+                            "name": "username",
+                            "description": "the user name",
                             "type": "string"
                         },
                         {
-                            "description": "the user ID",
-                            "name": "id",
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the role",
-                            "name": "rolename",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the user",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the timezone user was created in",
-                            "name": "timezone",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if user is default, false otherwise",
                             "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "the user state",
-                            "name": "state",
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the date and time the user account was created",
+                            "name": "id",
+                            "description": "the user ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "apikey",
+                            "description": "the api key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "firstname",
+                            "description": "the user firstname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the user state",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roletype",
+                            "description": "the type of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "timezone",
+                            "description": "the timezone user was created in",
+                            "type": "string"
+                        },
+                        {
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "roleid",
+                            "description": "the ID of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "rolename",
+                            "description": "the name of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
                             "name": "created",
+                            "description": "the date and time the user account was created",
                             "type": "date"
                         },
                         {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
+                            "name": "secretkey",
+                            "description": "the secret key of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the user firstname",
-                            "name": "firstname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the role",
-                            "name": "roleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account type of the user",
                             "name": "accounttype",
+                            "description": "the account type of the user",
                             "type": "short"
-                        },
-                        {
-                            "description": "the account name of the user",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the role",
-                            "name": "roletype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user name",
-                            "name": "username",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the api key of the user",
-                            "name": "apikey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
-                            "name": "iscallerchilddomain",
-                            "type": "boolean"
                         }
-                    ],
+                    ]
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
+                    "type": "long"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
+                },
+                {
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
+                    "type": "long"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "defaultzoneid",
+                    "description": "the default zone of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
                     "type": "list"
                 },
                 {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks owned by account",
                     "name": "networktotal",
+                    "description": "the total number of networks owned by account",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of snapshots which can be stored by this account",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "details for the account",
                     "name": "accountdetails",
+                    "description": "details for the account",
                     "type": "map"
                 },
                 {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the role",
-                    "name": "roleid",
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the default zone of the account",
-                    "name": "defaultzoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
                     "type": "long"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this account",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "true if account is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the account",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this account",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
                     "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
                     "type": "string"
                 },
                 {
-                    "description": "the total memory (in MB) available to be created for this account",
+                    "name": "domainid",
+                    "description": "id of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
+                    "type": "short"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
+                },
+                {
                     "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of templates which can be created by this account",
-                    "name": "templatelimit",
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "cancelStorageMaintenance",
             "description": "Cancels maintenance for primary storage",
             "isasync": true,
-            "name": "cancelStorageMaintenance",
+            "related": "",
             "params": [
                 {
-                    "description": "the primary storage ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "cancelStorageMaintenance",
+                    "description": "the primary storage ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "cancelStorageMaintenance"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the hypervisor type of the storage pool",
-                    "name": "hypervisor",
+                    "name": "id",
+                    "description": "the ID of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the storage pool",
+                    "name": "disksizeused",
+                    "description": "the host's currently used disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the storage pool",
+                    "type": "string"
+                },
+                {
                     "name": "state",
+                    "description": "the state of the storage pool",
                     "type": "storagepoolstatus"
                 },
                 {
-                    "description": "the name of the storage pool",
                     "name": "name",
+                    "description": "the name of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the storage pool path",
-                    "name": "path",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the storage pool",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the tags for the storage pool",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "the total disk size of the storage pool",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the Zone name of the storage pool",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the IP address of the storage pool",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the storage pool",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the storage pool type",
-                    "name": "type",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the cluster for the storage pool",
-                    "name": "clusterid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
                     "name": "suitableformigration",
+                    "description": "true if this pool is suitable to migrate a volume, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "IOPS CloudStack can provision from this storage pool",
-                    "name": "capacityiops",
-                    "type": "long"
+                    "name": "clustername",
+                    "description": "the name of the cluster for the storage pool",
+                    "type": "string"
                 },
                 {
-                    "description": "the scope of the storage pool",
                     "name": "scope",
+                    "description": "the scope of the storage pool",
                     "type": "string"
                 },
                 {
-                    "description": "the overprovisionfactor for the storage pool",
-                    "name": "overprovisionfactor",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID of the storage pool",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently used disk size",
-                    "name": "disksizeused",
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the storage pool",
                     "type": "long"
                 },
                 {
-                    "description": "the date and time the storage pool was created",
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
                     "name": "created",
+                    "description": "the date and time the storage pool was created",
                     "type": "date"
                 },
                 {
-                    "description": "the storage pool capabilities",
+                    "name": "allocatediops",
+                    "description": "total min IOPS currently in use by volumes",
+                    "type": "long"
+                },
+                {
                     "name": "storagecapabilities",
+                    "description": "the storage pool capabilities",
                     "type": "map"
                 },
                 {
-                    "description": "the name of the cluster for the storage pool",
-                    "name": "clustername",
+                    "name": "podid",
+                    "description": "the Pod ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the ID of the cluster for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor type of the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "path",
+                    "description": "the storage pool path",
+                    "type": "string"
+                },
+                {
+                    "name": "capacityiops",
+                    "description": "IOPS CloudStack can provision from this storage pool",
+                    "type": "long"
+                },
+                {
+                    "name": "type",
+                    "description": "the storage pool type",
+                    "type": "string"
+                },
+                {
+                    "name": "overprovisionfactor",
+                    "description": "the overprovisionfactor for the storage pool",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "Storage provider for this pool",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the storage pool",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Destroys a router.",
+            "name": "updateSnapshotPolicy",
+            "description": "Updates the snapshot policy.",
             "isasync": true,
-            "name": "destroyRouter",
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the router",
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the snapshot policy to the end user or not.",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
                     "name": "id",
-                    "related": "destroyRouter",
-                    "required": true,
-                    "type": "uuid"
+                    "description": "the ID of the snapshot policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateSnapshotPolicy"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the second DNS for the router",
-                    "name": "dns2",
+                    "name": "volumeid",
+                    "description": "the ID of the disk volume",
                     "type": "string"
                 },
                 {
-                    "description": "the template ID for the router",
-                    "name": "templateid",
+                    "name": "intervaltype",
+                    "description": "the interval type of the snapshot policy",
+                    "type": "short"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the time zone of the snapshot policy",
                     "type": "string"
                 },
                 {
-                    "description": "the hostname for the router",
-                    "name": "hostname",
+                    "name": "maxsnaps",
+                    "description": "maximum number of snapshots retained",
+                    "type": "int"
+                },
+                {
+                    "name": "schedule",
+                    "description": "time the snapshot is scheduled to be taken.",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the corresponding public network",
-                    "name": "publicnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest netmask for the router",
-                    "name": "guestnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the router",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "role of the domain router",
-                    "name": "role",
-                    "type": "string"
-                },
-                {
-                    "description": "the host ID for the router",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name for the router",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the second IPv6 DNS for the router",
-                    "name": "ip6dns2",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding link local network",
-                    "name": "linklocalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public MAC address for the router",
-                    "name": "publicmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest MAC address for the router",
-                    "name": "guestmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the router",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of redundant virtual router",
-                    "name": "redundantstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local netmask for the router",
-                    "name": "linklocalnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the router template requires upgrader",
-                    "name": "requiresupgrade",
+                    "name": "fordisplay",
+                    "description": "is this policy for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the account associated with the router",
+                    "name": "id",
+                    "description": "the ID of the snapshot policy",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "destroyRouter",
+            "description": "Destroys a router.",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the router",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "destroyRouter"
+                }
+            ],
+            "response": [
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with the router",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        }
+                    ]
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalmacaddress",
+                    "description": "the link local MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "dns2",
+                    "description": "the second DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the ipaddress",
+                    "type": "string"
+                },
+                {
+                    "name": "ip6dns1",
+                    "description": "the first IPv6 DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "linklocalnetmask",
+                    "description": "the link local netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "isredundantrouter",
+                    "description": "if this router is an redundant virtual router",
+                    "type": "boolean"
+                },
+                {
+                    "name": "linklocalnetworkid",
+                    "description": "the ID of the corresponding link local network",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the host ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcname",
+                    "description": "the name of VPC the router belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the hostname for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the router",
+                    "type": "string"
+                },
+                {
                     "name": "account",
+                    "description": "the account associated with the router",
                     "type": "string"
                 },
                 {
-                    "description": "the gateway for the router",
-                    "name": "gateway",
+                    "name": "ip6dns2",
+                    "description": "the second IPv6 DNS for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the link local IP address for the router",
+                    "name": "guestnetworkname",
+                    "description": "the name of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestipaddress",
+                    "description": "the guest IP address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the router",
+                    "type": "string"
+                },
+                {
+                    "name": "redundantstate",
+                    "description": "the state of redundant virtual router",
+                    "type": "string"
+                },
+                {
+                    "name": "requiresupgrade",
+                    "description": "true if the router template requires upgrader",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain associated with the router",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetworkid",
+                    "description": "the ID of the corresponding guest network",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the version of template",
+                    "type": "string"
+                },
+                {
+                    "name": "guestmacaddress",
+                    "description": "the guest MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "scriptsversion",
+                    "description": "the version of scripts",
+                    "type": "string"
+                },
+                {
+                    "name": "publicmacaddress",
+                    "description": "the public MAC address for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "role",
+                    "description": "role of the domain router",
+                    "type": "string"
+                },
+                {
                     "name": "linklocalip",
+                    "description": "the link local IP address for the router",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the router",
                     "name": "state",
+                    "description": "the state of the router",
                     "type": "state"
                 },
                 {
-                    "description": "the date and time the router was created",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetmask",
+                    "description": "the public netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "dns1",
+                    "description": "the first DNS for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "publicnetworkid",
+                    "description": "the ID of the corresponding public network",
+                    "type": "string"
+                },
+                {
+                    "name": "guestnetmask",
+                    "description": "the guest netmask for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway for the router",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date and time the router was created",
                     "type": "date"
                 },
                 {
-                    "description": "the project id of the ipaddress",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the version of scripts",
-                    "name": "scriptsversion",
-                    "type": "string"
-                },
-                {
-                    "description": "the first DNS for the router",
-                    "name": "dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the first IPv6 DNS for the router",
-                    "name": "ip6dns1",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID for the router",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the corresponding guest network",
-                    "name": "guestnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of VPC the router belongs to",
-                    "name": "vpcname",
-                    "type": "string"
-                },
-                {
-                    "description": "the link local MAC address for the router",
-                    "name": "linklocalmacaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "if this router is an redundant virtual router",
-                    "name": "isredundantrouter",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the public netmask for the router",
-                    "name": "publicnetmask",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the corresponding guest network",
-                    "name": "guestnetworkname",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the address",
                     "name": "project",
+                    "description": "the project name of the address",
                     "type": "string"
                 },
                 {
-                    "description": "the list of nics associated with the router",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the version of template",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the router",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the router",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the guest IP address for the router",
-                    "name": "guestipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the public IP address for the router",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain for the router",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "VPC the router belongs to",
                     "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the router",
-                    "name": "zoneid",
+                    "description": "VPC the router belongs to",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Updates the snapshot policy.",
+            "name": "registerNetscalerControlCenter",
+            "description": "Adds a netscaler control center device",
             "isasync": true,
-            "name": "updateSnapshotPolicy",
+            "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers",
             "params": [
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "name": "numretries",
+                    "description": "Credentials to reach netscaler controlcenter device",
+                    "type": "integer",
                     "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "the ID of the snapshot policy",
+                    "name": "password",
+                    "description": "Credentials to reach netscaler controlcenter  device",
+                    "type": "string",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateSnapshotPolicy",
-                    "required": false,
-                    "type": "uuid"
+                    "required": true
                 },
                 {
-                    "description": "an optional field, whether to the display the snapshot policy to the end user or not.",
+                    "name": "username",
+                    "description": "Credentials to reach netscaler controlcenter device",
+                    "type": "string",
                     "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "required": true
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "URL of the netscaler controlcenter appliance.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the disk volume",
-                    "name": "volumeid",
-                    "type": "string"
+                    "name": "lbdevicecapacity",
+                    "description": "device capacity",
+                    "type": "long"
                 },
                 {
-                    "description": "maximum number of snapshots retained",
-                    "name": "maxsnaps",
-                    "type": "int"
-                },
-                {
-                    "description": "the interval type of the snapshot policy",
-                    "name": "intervaltype",
-                    "type": "short"
-                },
-                {
-                    "description": "the time zone of the snapshot policy",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "time the snapshot is scheduled to be taken.",
-                    "name": "schedule",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the snapshot policy",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "is this policy for display to the regular user",
-                    "name": "fordisplay",
+                    "name": "lbdevicededicated",
+                    "description": "true if device is dedicated for an account",
                     "type": "boolean"
+                },
+                {
+                    "name": "gslbproviderprivateip",
+                    "description": "private IP of the NetScaler representing GSLB site",
+                    "type": "string"
+                },
+                {
+                    "name": "lbdevicestate",
+                    "description": "device state",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbproviderpublicip",
+                    "description": "public IP of the NetScaler representing GSLB site",
+                    "type": "string"
+                },
+                {
+                    "name": "privateinterface",
+                    "description": "the private interface of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "podids",
+                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
+                    "type": "list"
+                },
+                {
+                    "name": "lbdeviceid",
+                    "description": "device id of the netscaler load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "isexclusivegslbprovider",
+                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this netscaler device belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "publicinterface",
+                    "description": "the public interface of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "gslbprovider",
+                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "lbdevicename",
+                    "description": "device name",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "queryAsyncJobResult",
             "description": "Retrieves the current status of asynchronous job.",
             "isasync": false,
-            "name": "queryAsyncJobResult",
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the asychronous job",
-                    "length": 255,
                     "name": "jobid",
-                    "related": "queryAsyncJobResult",
+                    "description": "the ID of the asychronous job",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "queryAsyncJobResult"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the result code for the job",
+                    "name": "cmd",
+                    "description": "the async command executed",
+                    "type": "string"
+                },
+                {
+                    "name": "jobprocstatus",
+                    "description": "the progress information of the PENDING job",
+                    "type": "integer"
+                },
+                {
                     "name": "jobresultcode",
+                    "description": "the result code for the job",
                     "type": "integer"
                 },
                 {
-                    "description": "the user that executed the async command",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account that executed the async command",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the unique ID of the instance/entity object related to the job",
-                    "name": "jobinstanceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the current job status-should be 0 for PENDING",
-                    "name": "jobstatus",
-                    "type": "integer"
-                },
-                {
-                    "description": "  the created date of the job",
                     "name": "created",
+                    "description": "  the created date of the job",
                     "type": "date"
                 },
                 {
-                    "description": "the async command executed",
-                    "name": "cmd",
+                    "name": "userid",
+                    "description": "the user that executed the async command",
                     "type": "string"
                 },
                 {
-                    "description": "the result type",
-                    "name": "jobresulttype",
-                    "type": "string"
-                },
-                {
-                    "description": "the instance/entity object related to the job",
-                    "name": "jobinstancetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the progress information of the PENDING job",
-                    "name": "jobprocstatus",
+                    "name": "jobstatus",
+                    "description": "the current job status-should be 0 for PENDING",
                     "type": "integer"
                 },
                 {
-                    "description": "the result reason",
+                    "name": "accountid",
+                    "description": "the account that executed the async command",
+                    "type": "string"
+                },
+                {
+                    "name": "jobresulttype",
+                    "description": "the result type",
+                    "type": "string"
+                },
+                {
                     "name": "jobresult",
+                    "description": "the result reason",
                     "type": "responseobject"
+                },
+                {
+                    "name": "jobinstanceid",
+                    "description": "the unique ID of the instance/entity object related to the job",
+                    "type": "string"
+                },
+                {
+                    "name": "jobinstancetype",
+                    "description": "the instance/entity object related to the job",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists image stores.",
-            "isasync": false,
             "name": "listImageStores",
+            "description": "Lists image stores.",
+            "since": "4.2.0",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "the Zone ID for the image store",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the storage pool",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listImageStores",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the image store provider",
-                    "length": 255,
-                    "name": "provider",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the name of the image store",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the image store protocol",
-                    "length": 255,
                     "name": "protocol",
-                    "required": false,
-                    "type": "string"
+                    "description": "the image store protocol",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "",
+                    "name": "zoneid",
+                    "description": "the Zone ID for the image store",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "pagesize",
                     "required": false,
-                    "type": "integer"
+                    "related": "listZones"
                 },
                 {
-                    "description": "",
+                    "name": "provider",
+                    "description": "the image store provider",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the storage pool",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "integer"
+                    "related": "listImageStores"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the provider name of the image store",
-                    "name": "providername",
+                    "name": "url",
+                    "description": "the url of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the image store",
-                    "name": "name",
+                    "name": "zonename",
+                    "description": "the Zone name of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the protocol of the image store",
-                    "name": "protocol",
+                    "name": "id",
+                    "description": "the ID of the image store",
                     "type": "string"
                 },
                 {
-                    "description": "the scope of the image store",
                     "name": "scope",
+                    "description": "the scope of the image store",
                     "type": "scopetype"
                 },
                 {
-                    "description": "the url of the image store",
-                    "name": "url",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name of the image store",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the details of the image store",
-                    "name": "details",
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the image store",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID of the image store",
                     "name": "zoneid",
+                    "description": "the Zone ID of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the image store",
+                    "type": "string"
+                },
+                {
+                    "name": "providername",
+                    "description": "the provider name of the image store",
                     "type": "string"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "deleteAccount",
             "description": "Deletes a account, and all users associated with this account",
             "isasync": true,
-            "name": "deleteAccount",
             "params": [
                 {
-                    "description": "Account id",
-                    "length": 255,
                     "name": "id",
-                    "related": "listAccounts,enableAccount",
+                    "description": "Account id",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "enableAccount,listAccounts"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "createCounter",
             "description": "Adds metric counter",
             "isasync": true,
-            "name": "createCounter",
+            "related": "",
             "params": [
                 {
-                    "description": "Value of the counter e.g. oid in case of snmp.",
-                    "length": 255,
-                    "name": "value",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Source of the counter.",
-                    "length": 255,
                     "name": "source",
-                    "required": true,
-                    "type": "string"
+                    "description": "Source of the counter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "Name of the counter.",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "Name of the counter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "value",
+                    "description": "Value of the counter e.g. oid in case of snmp.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the id of the Counter",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "Value in case of snmp or other specific counters.",
-                    "name": "value",
-                    "type": "string"
-                },
-                {
-                    "description": "zone id of counter",
                     "name": "zoneid",
+                    "description": "zone id of counter",
                     "type": "string"
                 },
                 {
-                    "description": "Name of the counter.",
+                    "name": "value",
+                    "description": "Value in case of snmp or other specific counters.",
+                    "type": "string"
+                },
+                {
                     "name": "name",
+                    "description": "Name of the counter.",
                     "type": "string"
                 },
                 {
-                    "description": "Source of the counter.",
                     "name": "source",
+                    "description": "Source of the counter.",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the Counter",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listEventTypes",
             "description": "List Event Types",
             "isasync": false,
-            "name": "listEventTypes",
+            "related": "",
             "params": [
 
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "Event Type",
                     "name": "name",
+                    "description": "Event Type",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Disables out-of-band management for a cluster",
-            "isasync": true,
             "name": "disableOutOfBandManagementForCluster",
+            "description": "Disables out-of-band management for a cluster",
+            "since": "4.9.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the cluster",
-                    "length": 255,
                     "name": "clusterid",
-                    "related": "addCluster",
+                    "description": "the ID of the cluster",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addCluster"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the operation result",
-                    "name": "status",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the out-of-band management interface address",
-                    "name": "address",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface port",
-                    "name": "port",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management driver for the host",
-                    "name": "driver",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management action (if issued)",
-                    "name": "action",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface powerState of the host",
-                    "name": "powerstate",
-                    "type": "powerstate"
-                },
-                {
-                    "description": "the operation result description",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the out-of-band management interface password",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "true if out-of-band management is enabled for the host",
                     "name": "enabled",
+                    "description": "true if out-of-band management is enabled for the host",
                     "type": "boolean"
                 },
                 {
-                    "description": "the out-of-band management interface username",
                     "name": "username",
+                    "description": "the out-of-band management interface username",
                     "type": "string"
+                },
+                {
+                    "name": "port",
+                    "description": "the out-of-band management interface port",
+                    "type": "string"
+                },
+                {
+                    "name": "status",
+                    "description": "the operation result",
+                    "type": "boolean"
+                },
+                {
+                    "name": "description",
+                    "description": "the operation result description",
+                    "type": "string"
+                },
+                {
+                    "name": "address",
+                    "description": "the out-of-band management interface address",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "driver",
+                    "description": "the out-of-band management driver for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the out-of-band management interface password",
+                    "type": "string"
+                },
+                {
+                    "name": "action",
+                    "description": "the out-of-band management action (if issued)",
+                    "type": "string"
+                },
+                {
+                    "name": "powerstate",
+                    "description": "the out-of-band management interface powerState of the host",
+                    "type": "powerstate"
                 }
-            ],
-            "since": "4.9.0"
+            ]
         },
         {
+            "name": "removeNicFromVirtualMachine",
             "description": "Removes VM from specified network by deleting a NIC",
             "isasync": true,
-            "name": "removeNicFromVirtualMachine",
+            "related": "updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "Virtual Machine ID",
+                    "name": "nicid",
+                    "description": "NIC ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,removeNicFromVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "NIC ID",
+                    "name": "virtualmachineid",
+                    "description": "Virtual Machine ID",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "nicid",
-                    "related": "",
                     "required": true,
-                    "type": "uuid"
+                    "related": "removeNicFromVirtualMachine,updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
                     "type": "integer"
                 },
                 {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
                     "type": "string"
                 },
                 {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
 
                 },
                 {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
                     "type": "integer"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
                     "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
                     "type": "long"
                 },
                 {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
                 },
                 {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
                 },
                 {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of nics associated with vm",
                     "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the corresponding network",
                             "name": "networkid",
+                            "description": "the ID of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the Secondary ipv4 addr of nic",
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
                             "type": "list"
                         },
                         {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
                             "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
                             "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
                             "type": "string"
                         },
                         {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
                         },
                         {
-                            "description": "the IPv6 address of network",
                             "name": "ip6address",
+                            "description": "the IPv6 address of network",
                             "type": "string"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
                             "type": "boolean"
                         },
                         {
-                            "description": "true if nic is default, false otherwise",
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
                             "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the netmask of the nic",
                             "name": "netmask",
+                            "description": "the netmask of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        }
+                    ]
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "addCluster",
             "description": "Adds a new cluster",
             "isasync": false,
-            "name": "addCluster",
+            "related": "",
             "params": [
                 {
-                    "description": "Ovm3 vip to use for pool (and cluster)",
-                    "length": 255,
-                    "name": "ovm3vip",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Allocation state of this cluster for allocation of new resources",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Name of virtual switch used for guest traffic in the cluster. This would override zone wide traffic label setting.",
-                    "length": 255,
-                    "name": "guestvswitchname",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the cluster",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Type of virtual switch used for public traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)",
-                    "length": 255,
-                    "name": "publicvswitchtype",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Ovm3 native pooling enabled for cluster",
-                    "length": 255,
-                    "name": "ovm3pool",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "hypervisor type of the cluster: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator,Ovm3",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the password for the VSM associated with this cluster",
-                    "length": 255,
-                    "name": "vsmpassword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "Name of virtual switch used for public traffic in the cluster.  This would override zone wide traffic label setting.",
-                    "length": 255,
                     "name": "publicvswitchname",
-                    "required": false,
-                    "type": "string"
+                    "description": "Name of virtual switch used for public traffic in the cluster.  This would override zone wide traffic label setting.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the username for the cluster",
+                    "name": "hypervisor",
+                    "description": "hypervisor type of the cluster: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator,Ovm3",
+                    "type": "string",
                     "length": 255,
-                    "name": "username",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "type of the cluster: CloudManaged, ExternalManaged",
+                    "name": "ovm3pool",
+                    "description": "Ovm3 native pooling enabled for cluster",
+                    "type": "string",
                     "length": 255,
-                    "name": "clustertype",
-                    "required": true,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "the URL",
-                    "length": 255,
                     "name": "url",
-                    "required": false,
-                    "type": "string"
+                    "description": "the URL",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the ipaddress of the VSM associated with this cluster",
+                    "name": "publicvswitchtype",
+                    "description": "Type of virtual switch used for public traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)",
+                    "type": "string",
                     "length": 255,
-                    "name": "vsmipaddress",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "the Pod ID for the host",
+                    "name": "clustertype",
+                    "description": "type of the cluster: CloudManaged, ExternalManaged",
+                    "type": "string",
                     "length": 255,
-                    "name": "podid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
+                    "required": true
                 },
                 {
-                    "description": "the cluster name",
-                    "length": 255,
-                    "name": "clustername",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the username for the VSM associated with this cluster",
-                    "length": 255,
                     "name": "vsmusername",
-                    "required": false,
-                    "type": "string"
+                    "description": "the username for the VSM associated with this cluster",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the password for the host",
+                    "name": "clustername",
+                    "description": "the cluster name",
+                    "type": "string",
                     "length": 255,
-                    "name": "password",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "Ovm3 native OCFS2 clustering enabled for cluster",
+                    "name": "vsmipaddress",
+                    "description": "the ipaddress of the VSM associated with this cluster",
+                    "type": "string",
                     "length": 255,
-                    "name": "ovm3cluster",
-                    "required": false,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "Type of virtual switch used for guest traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)",
+                    "name": "allocationstate",
+                    "description": "Allocation state of this cluster for allocation of new resources",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "guestvswitchname",
+                    "description": "Name of virtual switch used for guest traffic in the cluster. This would override zone wide traffic label setting.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "createManagementNetworkIpRange"
+                },
+                {
                     "name": "guestvswitchtype",
-                    "required": false,
-                    "type": "string"
+                    "description": "Type of virtual switch used for guest traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vsmpassword",
+                    "description": "the password for the VSM associated with this cluster",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "password",
+                    "description": "the password for the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ovm3vip",
+                    "description": "Ovm3 vip to use for pool (and cluster)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "username",
+                    "description": "the username for the cluster",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ovm3cluster",
+                    "description": "Ovm3 native OCFS2 clustering enabled for cluster",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the cluster",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listZones"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the hypervisor type of the cluster",
-                    "name": "hypervisortype",
+                    "name": "zonename",
+                    "description": "the Zone name of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "The memory overcommit ratio of the cluster",
-                    "name": "memoryovercommitratio",
+                    "name": "podid",
+                    "description": "the Pod ID of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "the capacity of the Cluster",
+                    "name": "zoneid",
+                    "description": "the Zone ID of the cluster",
+                    "type": "string"
+                },
+                {
                     "name": "capacity",
+                    "description": "the capacity of the Cluster",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the Cluster name",
-                            "name": "clustername",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone ID",
-                            "name": "zoneid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the capacity currently in use",
                             "name": "capacityused",
+                            "description": "the capacity currently in use",
                             "type": "long"
                         },
                         {
-                            "description": "the percentage of capacity currently in use",
                             "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
                             "type": "string"
                         },
                         {
-                            "description": "the Pod name",
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
                             "name": "podname",
+                            "description": "the Pod name",
                             "type": "string"
                         },
                         {
-                            "description": "the capacity type",
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
+                            "type": "long"
+                        },
+                        {
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
                             "name": "type",
+                            "description": "the capacity type",
                             "type": "short"
                         },
                         {
-                            "description": "the Pod ID",
-                            "name": "podid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the total capacity available",
-                            "name": "capacitytotal",
-                            "type": "long"
-                        },
-                        {
-                            "description": "the Cluster ID",
-                            "name": "clusterid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Zone name",
                             "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the Zone ID of the cluster",
-                    "name": "zoneid",
+                    "name": "memoryovercommitratio",
+                    "description": "The memory overcommit ratio of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "Ovm3 VIP to use for pooling and/or clustering",
                     "name": "ovm3vip",
+                    "description": "Ovm3 VIP to use for pooling and/or clustering",
                     "type": "string"
                 },
                 {
-                    "description": "the allocation state of the cluster",
-                    "name": "allocationstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID of the cluster",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the cluster",
-                    "name": "clustertype",
-                    "type": "string"
-                },
-                {
-                    "description": "whether this cluster is managed by cloudstack",
-                    "name": "managedstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster ID",
                     "name": "id",
+                    "description": "the cluster ID",
                     "type": "string"
                 },
                 {
-                    "description": "the Zone name of the cluster",
-                    "name": "zonename",
+                    "name": "cpuovercommitratio",
+                    "description": "The cpu overcommit ratio of the cluster",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod name of the cluster",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name",
                     "name": "name",
+                    "description": "the cluster name",
                     "type": "string"
                 },
                 {
-                    "description": "Meta data associated with the zone (key/value pairs)",
+                    "name": "managedstate",
+                    "description": "whether this cluster is managed by cloudstack",
+                    "type": "string"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the type of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisortype",
+                    "description": "the hypervisor type of the cluster",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the cluster",
+                    "type": "string"
+                },
+                {
                     "name": "resourcedetails",
+                    "description": "Meta data associated with the zone (key/value pairs)",
                     "type": "map"
                 },
                 {
-                    "description": "The cpu overcommit ratio of the cluster",
-                    "name": "cpuovercommitratio",
+                    "name": "allocationstate",
+                    "description": "the allocation state of the cluster",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteTrafficMonitor",
             "description": "Deletes an traffic monitor host.",
             "isasync": false,
-            "name": "deleteTrafficMonitor",
             "params": [
                 {
-                    "description": "Id of the Traffic Monitor Host.",
-                    "length": 255,
                     "name": "id",
-                    "related": "addBaremetalHost,reconnectHost",
+                    "description": "Id of the Traffic Monitor Host.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addBaremetalHost,reconnectHost"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Activates a project",
-            "isasync": true,
-            "name": "activateProject",
-            "params": [
-                {
-                    "description": "id of the project to be modified",
-                    "length": 255,
-                    "name": "id",
-                    "related": "activateProject",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the total memory (in MB) owned by project",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this project to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots stored by this project",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks available to be created for this project",
-                    "name": "networkavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which can be created by this project",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines deployed by this project",
-                    "name": "vmtotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total volume being used by this project",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which have been created by this project",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores available to be created for this project",
-                    "name": "cpuavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name where the project belongs to",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines available for this project to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this project",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with vm",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this project",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id the project belongs to",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume which can be used by this project",
-                    "name": "volumelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this project",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by project",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this project",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the displaytext of the project",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this project",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of networks owned by project",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the project can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses allocated for this project",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates available to be created by this project",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores the project can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of cpu cores owned by project",
-                    "name": "cputotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the account name of the project's owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines running for this project",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of networks the project can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this project",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the project",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots available for this project",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the project can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by project",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this project",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the project can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this project can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the project",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) the project can own",
-                    "name": "memorylimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) owned by project",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this project",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the project",
-                    "name": "name",
-                    "type": "string"
-                }
-            ],
-            "since": "3.0.0"
-        },
-        {
+            "name": "deleteSslCert",
             "description": "Delete a certificate to CloudStack",
             "isasync": false,
-            "name": "deleteSslCert",
             "params": [
                 {
+                    "name": "id",
                     "description": "Id of SSL certificate",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "id",
-                    "related": "uploadSslCert",
                     "required": true,
-                    "type": "uuid"
+                    "related": "uploadSslCert"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Lists dedicated hosts.",
-            "isasync": false,
-            "name": "listDedicatedHosts",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the host",
-                    "length": 255,
-                    "name": "hostid",
-                    "related": "addBaremetalHost,reconnectHost",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the name of the account associated with the host. Must be used with domainId.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list dedicated hosts by affinity group",
-                    "length": 255,
-                    "name": "affinitygroupid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the domain associated with the host",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the ID of the host",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the dedicated resource",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the Account ID of the host",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the host",
-                    "name": "hostname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Dedication Affinity Group ID of the host",
-                    "name": "affinitygroupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the host",
-                    "name": "domainid",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Deletes a autoscale vm group.",
+            "name": "activateProject",
+            "description": "Activates a project",
+            "since": "3.0.0",
             "isasync": true,
-            "name": "deleteAutoScaleVmGroup",
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the autoscale group",
-                    "length": 255,
                     "name": "id",
-                    "related": "",
+                    "description": "id of the project to be modified",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "activateProject"
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                }
-            ]
-        },
-        {
-            "description": "lists Palo Alto firewall devices in a physical network",
-            "isasync": false,
-            "name": "listPaloAltoFirewalls",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Palo Alto firewall device ID",
-                    "length": 255,
-                    "name": "fwdeviceid",
-                    "related": "listPaloAltoFirewalls,addPaloAltoFirewall",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "addPaloAltoFirewall",
-            "response": [
-                {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "fwdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the Palo Alto firewall",
-                    "name": "fwdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "fwdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
-                    "name": "timeout",
-                    "type": "string"
-                },
-                {
-                    "description": "device capacity",
-                    "name": "fwdevicecapacity",
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by project",
                     "type": "long"
                 },
                 {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this project to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this project",
                     "type": "string"
                 },
                 {
-                    "description": "the private security zone of the external firewall",
-                    "name": "privatezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of times to retry requests to the external firewall",
-                    "name": "numretries",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this Palo Alto firewall belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Updates load balancer",
-            "isasync": true,
-            "name": "updateLoadBalancerRule",
-            "params": [
-                {
-                    "description": "the ID of the load balancer rule to update",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the load balancer rule",
-                    "length": 4096,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the load balancer rule",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "load balancer algorithm (source, roundrobin, leastconn)",
-                    "length": 255,
-                    "name": "algorithm",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "listLoadBalancerRules",
-            "response": [
-                {
-                    "description": "the project name of the load balancer",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the load balancer rule",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                    "name": "algorithm",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the load balancer rule",
                     "name": "account",
+                    "description": "the account name of the project's owner",
                     "type": "string"
                 },
                 {
-                    "description": "the public port",
-                    "name": "publicport",
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this project to acquire",
                     "type": "string"
                 },
                 {
-                    "description": "the private port",
-                    "name": "privateport",
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this project",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with load balancer",
+                    "name": "projectaccountname",
+                    "description": "the project account name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by project",
+                    "type": "float"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this project can acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this project",
+                    "type": "integer"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this project",
+                    "type": "long"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the project can own",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name where the project belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this project",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this project",
+                    "type": "long"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this project",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by project",
+                    "type": "long"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the project",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this project",
+                    "type": "string"
+                },
+                {
                     "name": "tags",
+                    "description": "the list of resource tags associated with vm",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
                             "name": "key",
+                            "description": "tag key name",
                             "type": "string"
                         },
                         {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
                             "name": "resourceid",
+                            "description": "id of the resource",
                             "type": "string"
                         },
                         {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
                             "type": "string"
                         },
                         {
-                            "description": "customer associated with the tag",
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
                             "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
                             "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the project id of the load balancer",
-                    "name": "projectid",
+                    "name": "displaytext",
+                    "description": "the displaytext of the project",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID of the load balancer rule",
                     "name": "domainid",
+                    "description": "the domain id the project belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the load balancer rule ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the protocol of the loadbalanacer rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the load balancer",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the zone the rule belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the load balancer",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the guest network the lb rule belongs to",
-                    "name": "networkid",
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this project",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listDedicatedHosts",
+            "description": "Lists dedicated hosts.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "list dedicated hosts by affinity group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addBaremetalHost,reconnectHost"
+                },
+                {
+                    "name": "account",
+                    "description": "the name of the account associated with the host. Must be used with domainId.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the Account ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroupid",
+                    "description": "the Dedication Affinity Group ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the dedicated resource",
+                    "type": "string"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteAutoScaleVmGroup",
+            "description": "Deletes a autoscale vm group.",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the autoscale group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listPaloAltoFirewalls",
+            "description": "lists Palo Alto firewall devices in a physical network",
+            "isasync": false,
+            "related": "addPaloAltoFirewall",
+            "params": [
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "fwdeviceid",
+                    "description": "Palo Alto firewall device ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "addPaloAltoFirewall,listPaloAltoFirewalls"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdevicestate",
+                    "description": "device state",
+                    "type": "string"
+                },
+                {
+                    "name": "privateinterface",
+                    "description": "the private interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdevicecapacity",
+                    "description": "device capacity",
+                    "type": "long"
+                },
+                {
+                    "name": "timeout",
+                    "description": "the timeout (in seconds) for requests to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdeviceid",
+                    "description": "device id of the Palo Alto firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdevicename",
+                    "description": "device name",
+                    "type": "string"
+                },
+                {
+                    "name": "publicinterface",
+                    "description": "the public interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "publiczone",
+                    "description": "the public security zone of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this Palo Alto firewall belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "privatezone",
+                    "description": "the private security zone of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "usageinterface",
+                    "description": "the usage interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the username that's used to log in to the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "numretries",
+                    "description": "the number of times to retry requests to the external firewall",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "deleteAlerts",
             "description": "Delete one or more alerts.",
             "isasync": false,
-            "name": "deleteAlerts",
             "params": [
                 {
-                    "description": "delete by alert type",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "end date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
-                    "name": "enddate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "start date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
-                    "length": 255,
-                    "name": "startdate",
-                    "required": false,
-                    "type": "date"
-                },
-                {
-                    "description": "the IDs of the alerts",
-                    "length": 255,
                     "name": "ids",
-                    "related": "",
+                    "description": "the IDs of the alerts",
+                    "type": "list",
+                    "length": 255,
                     "required": false,
-                    "type": "list"
+                    "related": ""
+                },
+                {
+                    "name": "enddate",
+                    "description": "end date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "startdate",
+                    "description": "start date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")",
+                    "type": "date",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "delete by alert type",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Enables an account",
-            "isasync": false,
-            "name": "enableAccount",
+            "name": "updateLoadBalancerRule",
+            "description": "Updates load balancer",
+            "isasync": true,
+            "related": "listLoadBalancerRules",
             "params": [
                 {
-                    "description": "Enables specified account.",
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "account",
                     "required": false,
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "Enables specified account in this domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Account id",
-                    "length": 255,
                     "name": "id",
-                    "related": "listAccounts,enableAccount",
+                    "description": "the ID of the load balancer rule to update",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "since": "4.4"
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer rule",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                },
+                {
+                    "name": "algorithm",
+                    "description": "load balancer algorithm (source, roundrobin, leastconn)",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "protocol",
+                    "description": "The protocol for the LB",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the load balancer rule",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "listAccounts",
             "response": [
                 {
-                    "description": "details for the account",
-                    "name": "accountdetails",
-                    "type": "map"
-                },
-                {
-                    "description": "the total number of projects being administrated by this account",
-                    "name": "projecttotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if account is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total number of public ip addresses available for this account to acquire",
-                    "name": "ipavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume being used by this account",
-                    "name": "volumetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) available to be used for this account",
-                    "name": "primarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total volume available for this account",
-                    "name": "volumeavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes sent",
-                    "name": "sentbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the default zone of the account",
-                    "name": "defaultzoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the Domain the account belongs too",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of public ip addresses this account can acquire",
-                    "name": "iplimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs the account can own",
-                    "name": "vpclimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) available to be used for this account",
-                    "name": "secondarystorageavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the network domain",
-                    "name": "networkdomain",
-                    "type": "string"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) owned by account",
-                    "name": "primarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total primary storage space (in GiB) the account can own",
-                    "name": "primarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "account type (admin, domain-admin, user)",
-                    "name": "accounttype",
-                    "type": "short"
-                },
-                {
-                    "description": "the total number of snapshots which can be stored by this account",
-                    "name": "snapshotlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) owned by account",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of cpu cores the account can own",
-                    "name": "cpulimit",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the account requires cleanup",
-                    "name": "iscleanuprequired",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the total number of networks the account can own",
-                    "name": "networklimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of vpcs owned by account",
-                    "name": "vpctotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines available for this account to acquire",
-                    "name": "vmavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
-                    "name": "roletype",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of network traffic bytes received",
-                    "name": "receivedbytes",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of networks owned by account",
-                    "name": "networktotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of templates which can be created by this account",
-                    "name": "templatelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of virtual machines that can be deployed by this account",
-                    "name": "vmlimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of templates which have been created by this account",
-                    "name": "templatetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of snapshots available for this account",
-                    "name": "snapshotavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total secondary storage space (in GiB) the account can own",
-                    "name": "secondarystoragelimit",
-                    "type": "string"
-                },
-                {
-                    "description": "the total number of snapshots stored by this account",
-                    "name": "snapshottotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of vpcs available to be created for this account",
-                    "name": "vpcavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the total memory (in MB) available to be created for this account",
-                    "name": "memoryavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the account",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the account",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of acl groups that account belongs to",
-                    "name": "groups",
-                    "type": "list"
-                },
-                {
-                    "description": "the total number of templates available to be created by this account",
-                    "name": "templateavailable",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the account",
                     "name": "name",
+                    "description": "the name of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the role",
-                    "name": "rolename",
+                    "name": "domainid",
+                    "description": "the domain ID of the load balancer rule",
                     "type": "string"
                 },
                 {
-                    "description": "name of the Domain the account belongs too",
-                    "name": "domain",
+                    "name": "publicport",
+                    "description": "the public port",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of cpu cores owned by account",
-                    "name": "cputotal",
-                    "type": "long"
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the total number of public ip addresses allocated for this account",
-                    "name": "iptotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines stopped for this account",
-                    "name": "vmstopped",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total number of projects the account can own",
-                    "name": "projectlimit",
+                    "name": "publicipid",
+                    "description": "the public ip address id",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the role",
-                    "name": "roleid",
+                    "name": "zonename",
+                    "description": "the name of the zone the load balancer rule belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of networks available to be created for this account",
-                    "name": "networkavailable",
+                    "name": "id",
+                    "description": "the load balancer rule ID",
                     "type": "string"
                 },
                 {
-                    "description": "the total secondary storage space (in GiB) owned by account",
-                    "name": "secondarystoragetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the total number of virtual machines running for this account",
-                    "name": "vmrunning",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total memory (in MB) the account can own",
-                    "name": "memorylimit",
+                    "name": "projectid",
+                    "description": "the project id of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "the total number of projects available for administration by this account",
-                    "name": "projectavailable",
+                    "name": "description",
+                    "description": "the description of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "the total volume which can be used by this account",
-                    "name": "volumelimit",
+                    "name": "algorithm",
+                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
                     "type": "string"
                 },
                 {
-                    "description": "the list of users associated with account",
-                    "name": "user",
+                    "name": "privateport",
+                    "description": "the private port",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with load balancer",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the user firstname",
-                            "name": "firstname",
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
                             "type": "string"
                         },
                         {
-                            "description": "the account type of the user",
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the id of the guest network the lb rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the loadbalanacer rule",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "enableAccount",
+            "description": "Enables an account",
+            "isasync": false,
+            "related": "listAccounts",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "Account id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "enableAccount,listAccounts"
+                },
+                {
+                    "name": "domainid",
+                    "description": "Enables specified account in this domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "account",
+                    "description": "Enables specified account.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "isdefault",
+                    "description": "true if account is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "defaultzoneid",
+                    "description": "the default zone of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "networklimit",
+                    "description": "the total number of networks the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "networktotal",
+                    "description": "the total number of networks owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "networkdomain",
+                    "description": "the network domain",
+                    "type": "string"
+                },
+                {
+                    "name": "receivedbytes",
+                    "description": "the total number of network traffic bytes received",
+                    "type": "long"
+                },
+                {
+                    "name": "iscleanuprequired",
+                    "description": "true if the account requires cleanup",
+                    "type": "boolean"
+                },
+                {
+                    "name": "templatetotal",
+                    "description": "the total number of templates which have been created by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "ipavailable",
+                    "description": "the total number of public ip addresses available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the total memory (in MB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "vpcavailable",
+                    "description": "the total number of vpcs available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "cpulimit",
+                    "description": "the total number of cpu cores the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmtotal",
+                    "description": "the total number of virtual machines deployed by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "vpclimit",
+                    "description": "the total number of vpcs the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "name of the Domain the account belongs too",
+                    "type": "string"
+                },
+                {
+                    "name": "templatelimit",
+                    "description": "the total number of templates which can be created by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "vmavailable",
+                    "description": "the total number of virtual machines available for this account to acquire",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragetotal",
+                    "description": "the total secondary storage space (in GiB) owned by account",
+                    "type": "float"
+                },
+                {
+                    "name": "vmstopped",
+                    "description": "the total number of virtual machines stopped for this account",
+                    "type": "integer"
+                },
+                {
+                    "name": "primarystoragetotal",
+                    "description": "the total primary storage space (in GiB) owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "vmlimit",
+                    "description": "the total number of virtual machines that can be deployed by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotlimit",
+                    "description": "the total number of snapshots which can be stored by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "memorylimit",
+                    "description": "the total memory (in MB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "volumetotal",
+                    "description": "the total volume being used by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "memoryavailable",
+                    "description": "the total memory (in MB) available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshottotal",
+                    "description": "the total number of snapshots stored by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "snapshotavailable",
+                    "description": "the total number of snapshots available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystoragelimit",
+                    "description": "the total secondary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "vpctotal",
+                    "description": "the total number of vpcs owned by account",
+                    "type": "long"
+                },
+                {
+                    "name": "volumeavailable",
+                    "description": "the total volume available for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "user",
+                    "description": "the list of users associated with account",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "roleid",
+                            "description": "the ID of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "timezone",
+                            "description": "the timezone user was created in",
+                            "type": "string"
+                        },
+                        {
+                            "name": "lastname",
+                            "description": "the user lastname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the user ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "apikey",
+                            "description": "the api key of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "rolename",
+                            "description": "the name of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "firstname",
+                            "description": "the user firstname",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account name of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "roletype",
+                            "description": "the type of the role",
+                            "type": "string"
+                        },
+                        {
+                            "name": "accountid",
+                            "description": "the account ID of the user",
+                            "type": "string"
+                        },
+                        {
+                            "name": "email",
+                            "description": "the user email address",
+                            "type": "string"
+                        },
+                        {
+                            "name": "usersource",
+                            "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                            "type": "string"
+                        },
+                        {
                             "name": "accounttype",
+                            "description": "the account type of the user",
                             "type": "short"
                         },
                         {
-                            "description": "the user lastname",
-                            "name": "lastname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the secret key of the user",
                             "name": "secretkey",
+                            "description": "the secret key of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the type of the role",
-                            "name": "roletype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the boolean value representing if the updating target is in caller's child domain",
-                            "name": "iscallerchilddomain",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the domain ID of the user",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user email address",
-                            "name": "email",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user ID",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the user name",
                             "name": "username",
+                            "description": "the user name",
                             "type": "string"
                         },
                         {
-                            "description": "the timezone user was created in",
-                            "name": "timezone",
+                            "name": "state",
+                            "description": "the user state",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the role",
-                            "name": "roleid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the date and time the user account was created",
                             "name": "created",
+                            "description": "the date and time the user account was created",
                             "type": "date"
                         },
                         {
-                            "description": "the user state",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account name of the user",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the api key of the user",
-                            "name": "apikey",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the user",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if user is default, false otherwise",
-                            "name": "isdefault",
+                            "name": "iscallerchilddomain",
+                            "description": "the boolean value representing if the updating target is in caller's child domain",
                             "type": "boolean"
                         },
                         {
-                            "description": "the name of the role",
-                            "name": "rolename",
+                            "name": "domain",
+                            "description": "the domain name of the user",
                             "type": "string"
                         },
                         {
-                            "description": "the account ID of the user",
-                            "name": "accountid",
-                            "type": "string"
+                            "name": "isdefault",
+                            "description": "true if user is default, false otherwise",
+                            "type": "boolean"
                         }
-                    ],
+                    ]
+                },
+                {
+                    "name": "groups",
+                    "description": "the list of acl groups that account belongs to",
                     "type": "list"
                 },
                 {
-                    "description": "the total number of virtual machines deployed by this account",
-                    "name": "vmtotal",
+                    "name": "projectlimit",
+                    "description": "the total number of projects the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuavailable",
+                    "description": "the total number of cpu cores available to be created for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "sentbytes",
+                    "description": "the total number of network traffic bytes sent",
                     "type": "long"
                 },
                 {
-                    "description": "the total number of cpu cores available to be created for this account",
-                    "name": "cpuavailable",
+                    "name": "projecttotal",
+                    "description": "the total number of projects being administrated by this account",
+                    "type": "long"
+                },
+                {
+                    "name": "iplimit",
+                    "description": "the total number of public ip addresses this account can acquire",
                     "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Creates a profile that contains information about the virtual machine which will be provisioned automatically by autoscale feature.",
-            "isasync": true,
-            "name": "createAutoScaleVmProfile",
-            "params": [
-                {
-                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
-                    "length": 255,
-                    "name": "destroyvmgraceperiod",
-                    "required": false,
-                    "type": "integer"
                 },
                 {
-                    "description": "the service offering of the auto deployed virtual machine",
-                    "length": 255,
-                    "name": "serviceofferingid",
-                    "related": "updateServiceOffering,listServiceOfferings",
-                    "required": true,
-                    "type": "uuid"
+                    "name": "templateavailable",
+                    "description": "the total number of templates available to be created by this account",
+                    "type": "string"
                 },
                 {
-                    "description": "availability zone for the auto deployed virtual machine",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": true,
-                    "type": "uuid"
+                    "name": "volumelimit",
+                    "description": "the total volume which can be used by this account",
+                    "type": "string"
                 },
                 {
-                    "description": "the ID of the user used to launch and destroy the VMs",
-                    "length": 255,
-                    "name": "autoscaleuserid",
-                    "related": "getUser",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161",
-                    "length": 255,
-                    "name": "counterparam",
-                    "required": false,
+                    "name": "accountdetails",
+                    "description": "details for the account",
                     "type": "map"
                 },
                 {
-                    "description": "the template of the auto deployed virtual machine",
-                    "length": 255,
-                    "name": "templateid",
-                    "related": "copyTemplate,registerTemplate,listTemplates,registerIso,listIsos,createTemplate,copyIso",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "parameters other than zoneId/serviceOfferringId/templateId of the auto deployed virtual machine",
-                    "length": 255,
-                    "name": "otherdeployparams",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "an optional field, whether to the display the profile to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-
-                },
-                {
-                    "description": "the account owning the instance group",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the template to be used while deploying a virtual machine",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id vm profile",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
-                    "name": "destroyvmgraceperiod",
+                    "name": "vmrunning",
+                    "description": "the total number of virtual machines running for this account",
                     "type": "integer"
                 },
                 {
-                    "description": "the availability zone to be used while deploying a virtual machine",
-                    "name": "zoneid",
+                    "name": "networkavailable",
+                    "description": "the total number of networks available to be created for this account",
                     "type": "string"
                 },
                 {
-
+                    "name": "cputotal",
+                    "description": "the total number of cpu cores owned by account",
+                    "type": "long"
                 },
                 {
-                    "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine",
-                    "name": "otherdeployparams",
-                    "type": "string"
-                },
-                {
-                    "description": "the service offering to be used while deploying a virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the autoscale vm profile ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the user used to launch and destroy the VMs",
-                    "name": "autoscaleuserid",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm profile",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the vm profile",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "is profile for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain ID of the vm profile",
                     "name": "domainid",
+                    "description": "id of the Domain the account belongs too",
                     "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the account",
+                    "type": "string"
+                },
+                {
+                    "name": "roletype",
+                    "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystoragelimit",
+                    "description": "the total primary storage space (in GiB) the account can own",
+                    "type": "string"
+                },
+                {
+                    "name": "accounttype",
+                    "description": "account type (admin, domain-admin, user)",
+                    "type": "short"
+                },
+                {
+                    "name": "projectavailable",
+                    "description": "the total number of projects available for administration by this account",
+                    "type": "string"
+                },
+                {
+                    "name": "secondarystorageavailable",
+                    "description": "the total secondary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "primarystorageavailable",
+                    "description": "the total primary storage space (in GiB) available to be used for this account",
+                    "type": "string"
+                },
+                {
+                    "name": "iptotal",
+                    "description": "the total number of public ip addresses allocated for this account",
+                    "type": "long"
                 }
             ]
         },
         {
-            "description": "Lists load balancer stickiness policies.",
-            "isasync": false,
-            "name": "listLBStickinessPolicies",
+            "name": "createAutoScaleVmProfile",
+            "description": "Creates a profile that contains information about the virtual machine which will be provisioned automatically by autoscale feature.",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the load balancer rule",
+                    "name": "zoneid",
+                    "description": "availability zone for the auto deployed virtual machine",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "lbruleid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
+                    "required": true,
+                    "related": "listZones"
                 },
                 {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the profile to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
+                    "since": "4.4"
+                },
+                {
+                    "name": "destroyvmgraceperiod",
+                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template of the auto deployed virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listIsos,registerTemplate,copyTemplate,copyIso,registerIso,createTemplate,listTemplates"
+                },
+                {
+                    "name": "autoscaleuserid",
+                    "description": "the ID of the user used to launch and destroy the VMs",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "getUser"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the service offering of the auto deployed virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "counterparam",
+                    "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "otherdeployparams",
+                    "description": "parameters other than zoneId/serviceOfferringId/templateId of the auto deployed virtual machine",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "domain",
+                    "description": "the domain name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the template to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is profile for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
+                    "name": "serviceofferingid",
+                    "description": "the service offering to be used while deploying a virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the load balancer stickiness policy",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listLBStickinessPolicies",
-                    "required": false,
-                    "type": "uuid"
+                    "name": "otherdeployparams",
+                    "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
+                    "name": "autoscaleuserid",
+                    "description": "the ID of the user used to launch and destroy the VMs",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account owning the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the autoscale vm profile ID",
+                    "type": "string"
+                },
+                {
+
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the availability zone to be used while deploying a virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm profile",
+                    "type": "string"
+                },
+                {
+                    "name": "destroyvmgraceperiod",
+                    "description": "the time allowed for existing connections to get closed before a vm is destroyed",
                     "type": "integer"
+                },
+                {
+
+                }
+            ]
+        },
+        {
+            "name": "listLBStickinessPolicies",
+            "description": "Lists load balancer stickiness policies.",
+            "since": "3.0.0",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the load balancer stickiness policy",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listLBStickinessPolicies"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the domain ID of the Stickiness policy",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the policy",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the LB rule ID",
-                    "name": "lbruleid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the Stickiness policy",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the description of the Stickiness policy",
                     "name": "description",
+                    "description": "the description of the Stickiness policy",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the Stickiness policy",
+                    "name": "account",
+                    "description": "the account of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the Stickiness policy belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the Stickiness policy",
+                    "type": "string"
+                },
+                {
+                    "name": "lbruleid",
+                    "description": "the LB rule ID",
+                    "type": "string"
+                },
+                {
                     "name": "name",
+                    "description": "the name of the Stickiness policy",
                     "type": "string"
                 },
                 {
-                    "description": "the list of stickinesspolicies",
                     "name": "stickinesspolicy",
+                    "description": "the list of stickinesspolicies",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the name of the Stickiness policy",
                             "name": "name",
+                            "description": "the name of the Stickiness policy",
                             "type": "string"
                         },
                         {
-                            "description": "the description of the Stickiness policy",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the params of the policy",
                             "name": "params",
+                            "description": "the params of the policy",
                             "type": "map"
                         },
                         {
-                            "description": "the method name of the Stickiness policy",
-                            "name": "methodname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "is policy for display to the regular user",
-                            "name": "fordisplay",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the state of the policy",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the LB Stickiness policy ID",
                             "name": "id",
+                            "description": "the LB Stickiness policy ID",
                             "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "methodname",
+                            "description": "the method name of the Stickiness policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the Stickiness policy",
+                            "type": "string"
+                        },
+                        {
+                            "name": "fordisplay",
+                            "description": "is policy for display to the regular user",
+                            "type": "boolean"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the id of the zone the Stickiness policy belongs to",
-                    "name": "zoneid",
+                    "name": "domain",
+                    "description": "the domain of the Stickiness policy",
                     "type": "string"
                 },
                 {
-                    "description": "the account of the Stickiness policy",
-                    "name": "account",
+                    "name": "state",
+                    "description": "the state of the policy",
                     "type": "string"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "addUcsManager",
             "description": "Adds a Ucs manager",
             "isasync": false,
-            "name": "addUcsManager",
+            "related": "",
             "params": [
                 {
-                    "description": "the name of UCS manager",
-                    "length": 255,
                     "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "description": "the name of UCS manager",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "the Zone id for the ucs manager",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the password of UCS",
-                    "length": 255,
                     "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "description": "the password of UCS",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "the username of UCS",
+                    "name": "zoneid",
+                    "description": "the Zone id for the ucs manager",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "username",
                     "required": true,
-                    "type": "string"
+                    "related": "listZones"
                 },
                 {
-                    "description": "the name of UCS url",
-                    "length": 255,
                     "name": "url",
-                    "required": true,
-                    "type": "string"
+                    "description": "the name of UCS url",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "the username of UCS",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the zone ID of ucs manager",
                     "name": "zoneid",
+                    "description": "the zone ID of ucs manager",
                     "type": "string"
                 },
                 {
-                    "description": "the name of ucs manager",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ucs manager",
                     "name": "id",
+                    "description": "the ID of the ucs manager",
                     "type": "string"
                 },
                 {
-                    "description": "the url of ucs manager",
+                    "name": "name",
+                    "description": "the name of ucs manager",
+                    "type": "string"
+                },
+                {
                     "name": "url",
+                    "description": "the url of ucs manager",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteNetwork",
             "description": "Deletes a network",
             "isasync": true,
-            "name": "deleteNetwork",
             "params": [
                 {
-                    "description": "Force delete a network. Network will be marked as 'Destroy' even when commands to shutdown and cleanup to the backend fails.",
+                    "name": "id",
+                    "description": "the ID of the network",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "forced",
-                    "required": false,
-                    "type": "boolean"
+                    "required": true,
+                    "related": "listNetworks,updateNetwork,createNetwork"
                 },
                 {
-                    "description": "the ID of the network",
+                    "name": "forced",
+                    "description": "Force delete a network. Network will be marked as 'Destroy' even when commands to shutdown and cleanup to the backend fails.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "id",
-                    "related": "updateNetwork,createNetwork,listNetworks",
-                    "required": true,
-                    "type": "uuid"
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "reconnectHost",
             "description": "Reconnects a host.",
             "isasync": true,
-            "name": "reconnectHost",
+            "related": "addBaremetalHost",
             "params": [
                 {
-                    "description": "the host ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "addBaremetalHost,reconnectHost",
+                    "description": "the host ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "addBaremetalHost,reconnectHost"
                 }
             ],
-            "related": "addBaremetalHost",
             "response": [
                 {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
+                    "name": "zoneid",
+                    "description": "the Zone ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the host",
-                    "name": "state",
-                    "type": "status"
-                },
-                {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
+                    "name": "capabilities",
+                    "description": "capabilities of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
+                    "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "GPU cards present in the host",
+                    "name": "version",
+                    "description": "the host version",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "gpugroup",
+                    "description": "GPU cards present in the host",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "GPU cards present in the host",
-                            "name": "gpugroupname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of enabled vGPUs",
                             "name": "vgpu",
+                            "description": "the list of enabled vGPUs",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "Model Name of vGPU",
+                                    "name": "maxresolutionx",
+                                    "description": "Maximum X resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxheads",
+                                    "description": "Maximum displays per user",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "remainingcapacity",
+                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
+                                    "type": "long"
+                                },
+                                {
                                     "name": "vgputype",
+                                    "description": "Model Name of vGPU",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
-                                    "name": "maxvgpuperpgpu",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
-                                    "name": "remainingcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Video RAM for this vGPU type",
                                     "name": "videoram",
+                                    "description": "Video RAM for this vGPU type",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum Y resolution per display",
-                                    "name": "maxresolutiony",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
                                     "name": "maxcapacity",
+                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxvgpuperpgpu",
+                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutiony",
+                                    "description": "Maximum Y resolution per display",
                                     "type": "long"
                                 }
-                            ],
-                            "type": "list"
+                            ]
+                        },
+                        {
+                            "name": "gpugroupname",
+                            "description": "GPU cards present in the host",
+                            "type": "string"
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
                     "type": "long"
                 },
                 {
-                    "description": "the Zone name of the host",
                     "name": "zonename",
+                    "description": "the Zone name of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the host out-of-band management information",
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor",
+                    "type": "string"
+                },
+                {
+                    "name": "events",
+                    "description": "events available for the host",
+                    "type": "string"
+                },
+                {
                     "name": "outofbandmanagement",
+                    "description": "the host out-of-band management information",
                     "type": "outofbandmanagementresponse"
                 },
                 {
-                    "description": "the name of the host",
-                    "name": "name",
+                    "name": "username",
+                    "description": "the admin that annotated this host",
                     "type": "string"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
+                    "name": "state",
+                    "description": "the state of the host",
+                    "type": "status"
                 },
                 {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
-                    "type": "date"
-                },
-                {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
                     "type": "string"
                 },
                 {
-                    "description": "the management server ID of the host",
-                    "name": "managementserverid",
-                    "type": "long"
-                },
-                {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
                     "type": "string"
                 },
                 {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the amount of the host's memory currently used",
                     "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
                     "type": "long"
                 },
                 {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
                     "type": "long"
                 },
                 {
-                    "description": "events available for the host",
-                    "name": "events",
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
                     "type": "string"
                 },
                 {
-                    "description": "the cluster ID of the host",
+                    "name": "id",
+                    "description": "the ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "oscategoryname",
+                    "description": "the OS category name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "podname",
+                    "description": "the Pod name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hostha",
+                    "description": "the host HA information information",
+                    "type": "hostharesponse"
+                },
+                {
+                    "name": "created",
+                    "description": "the date and time the host was created",
+                    "type": "date"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the last annotation set on this host by an admin",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
                     "name": "clusterid",
+                    "description": "the cluster ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the resource state of the host",
-                    "name": "resourcestate",
+                    "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
                     "type": "long"
                 },
                 {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "Host details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "managementserverid",
+                    "description": "the management server ID of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "lastannotated",
+                    "description": "the last time this host was annotated",
+                    "type": "date"
+                },
+                {
+                    "name": "resourcestate",
+                    "description": "the resource state of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the host type",
                     "name": "type",
+                    "description": "the host type",
                     "type": "type"
                 },
                 {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
+                    "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
                     "type": "string"
                 },
                 {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
-                    "type": "string"
+                    "name": "hypervisor",
+                    "description": "the host hypervisor",
+                    "type": "hypervisortype"
                 },
                 {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the cpu average load on the host",
                     "name": "averageload",
+                    "description": "the cpu average load on the host",
                     "type": "long"
                 },
                 {
-                    "description": "the ID of the host",
-                    "name": "id",
+                    "name": "name",
+                    "description": "the name of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the cluster type of the cluster that host belongs to",
-                    "name": "clustertype",
-                    "type": "string"
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
                 },
                 {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
-                    "type": "string"
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
+                    "name": "cpusockets",
+                    "description": "the number of CPU sockets on the host",
+                    "type": "integer"
                 },
                 {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
-                    "type": "string"
-                },
-                {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes a project",
-            "isasync": true,
             "name": "deleteProject",
+            "description": "Deletes a project",
+            "since": "3.0.0",
+            "isasync": true,
             "params": [
                 {
-                    "description": "id of the project to be deleted",
-                    "length": 255,
                     "name": "id",
-                    "related": "",
+                    "description": "id of the project to be deleted",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 }
-            ],
-            "since": "3.0.0"
+            ]
         },
         {
+            "name": "listNetscalerLoadBalancers",
             "description": "lists netscaler load balancer devices",
             "isasync": false,
-            "name": "listNetscalerLoadBalancers",
+            "related": "addNetscalerLoadBalancer",
             "params": [
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
                     "name": "page",
-                    "required": false,
-                    "type": "integer"
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
                     "name": "keyword",
-                    "required": false,
-                    "type": "string"
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "netscaler load balancer device ID",
-                    "length": 255,
                     "name": "lbdeviceid",
-                    "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers",
+                    "description": "netscaler load balancer device ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
                 }
             ],
-            "related": "addNetscalerLoadBalancer",
             "response": [
                 {
-                    "description": "device state",
-                    "name": "lbdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the load balancer",
                     "name": "privateinterface",
+                    "description": "the private interface of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
-                    "name": "isexclusivegslbprovider",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device id of the netscaler load balancer",
-                    "name": "lbdeviceid",
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this netscaler device belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "true if device is dedicated for an account",
+                    "name": "gslbproviderpublicip",
+                    "description": "public IP of the NetScaler representing GSLB site",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external load balancer",
+                    "type": "string"
+                },
+                {
                     "name": "lbdevicededicated",
+                    "description": "true if device is dedicated for an account",
                     "type": "boolean"
                 },
                 {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device capacity",
                     "name": "lbdevicecapacity",
+                    "description": "device capacity",
                     "type": "long"
                 },
                 {
-                    "description": "private IP of the NetScaler representing GSLB site",
-                    "name": "gslbproviderprivateip",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
                     "name": "lbdevicename",
+                    "description": "device name",
                     "type": "string"
                 },
                 {
-                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
-                    "name": "gslbprovider",
+                    "name": "isexclusivegslbprovider",
+                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
                     "type": "boolean"
                 },
                 {
-                    "description": "the public interface of the load balancer",
-                    "name": "publicinterface",
+                    "name": "gslbprovider",
+                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "gslbproviderprivateip",
+                    "description": "private IP of the NetScaler representing GSLB site",
                     "type": "string"
                 },
                 {
-                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
+                    "name": "lbdevicestate",
+                    "description": "device state",
+                    "type": "string"
+                },
+                {
                     "name": "podids",
+                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
                     "type": "list"
                 },
                 {
-                    "description": "the physical network to which this netscaler device belongs to",
-                    "name": "physicalnetworkid",
+                    "name": "publicinterface",
+                    "description": "the public interface of the load balancer",
                     "type": "string"
                 },
                 {
-                    "description": "public IP of the NetScaler representing GSLB site",
-                    "name": "gslbproviderpublicip",
+                    "name": "provider",
+                    "description": "name of the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the management IP address of the external load balancer",
-                    "name": "ipaddress",
+                    "name": "lbdeviceid",
+                    "description": "device id of the netscaler load balancer",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createInstanceGroup",
             "description": "Creates a vm group",
             "isasync": false,
-            "name": "createInstanceGroup",
+            "related": "",
             "params": [
                 {
-                    "description": "the domain ID of account owning the instance group",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomains",
+                    "description": "the domain ID of account owning the instance group",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomains"
                 },
                 {
-                    "description": "The project of the instance group",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the account of the instance group. The account parameter must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the instance group",
-                    "length": 255,
                     "name": "name",
-                    "required": true,
-                    "type": "string"
+                    "description": "the name of the instance group",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the instance group. The account parameter must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "The project of the instance group",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the instance group",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "time and date the instance group was created",
                     "name": "created",
+                    "description": "time and date the instance group was created",
                     "type": "date"
                 },
                 {
-                    "description": "the project ID of the instance group",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account owning the instance group",
                     "name": "account",
+                    "description": "the account owning the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID of the instance group",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the instance group",
                     "name": "domain",
+                    "description": "the domain name of the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the instance group",
-                    "name": "name",
+                    "name": "domainid",
+                    "description": "the domain ID of the instance group",
                     "type": "string"
                 },
                 {
-                    "description": "the project name of the instance group",
                     "name": "project",
+                    "description": "the project name of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project ID of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the instance group",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the instance group",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "addNetscalerLoadBalancer",
             "description": "Adds a netscaler load balancer device",
             "isasync": true,
-            "name": "addNetscalerLoadBalancer",
+            "related": "",
             "params": [
                 {
-                    "description": "Credentials to reach netscaler load balancer device",
-                    "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Credentials to reach netscaler load balancer device",
-                    "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "true if NetScaler device being added is for providing GSLB service",
-                    "length": 255,
-                    "name": "gslbprovider",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Netscaler device type supports NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer",
-                    "length": 255,
-                    "name": "networkdevicetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "URL of the netscaler load balancer appliance.",
-                    "length": 255,
                     "name": "url",
-                    "required": true,
-                    "type": "string"
+                    "description": "URL of the netscaler load balancer appliance.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "true if NetScaler device being added is for providing GSLB service exclusively and can not be used for LB",
+                    "name": "gslbprovider",
+                    "description": "true if NetScaler device being added is for providing GSLB service",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "isexclusivegslbprovider",
-                    "required": false,
-                    "type": "boolean"
+                    "required": false
                 },
                 {
-                    "description": "public IP of the site",
-                    "length": 255,
                     "name": "gslbproviderprivateip",
-                    "required": false,
-                    "type": "string"
+                    "description": "public IP of the site",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 },
                 {
-                    "description": "public IP of the site",
+                    "name": "networkdevicetype",
+                    "description": "Netscaler device type supports NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer",
+                    "type": "string",
                     "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "Credentials to reach netscaler load balancer device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "password",
+                    "description": "Credentials to reach netscaler load balancer device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
                     "name": "gslbproviderpublicip",
-                    "required": false,
-                    "type": "string"
+                    "description": "public IP of the site",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isexclusivegslbprovider",
+                    "description": "true if NetScaler device being added is for providing GSLB service exclusively and can not be used for LB",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the private interface of the load balancer",
-                    "name": "privateinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
-                    "name": "podids",
-                    "type": "list"
-                },
-                {
-                    "description": "the public interface of the load balancer",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
                     "name": "lbdevicestate",
+                    "description": "device state",
                     "type": "string"
                 },
                 {
-                    "description": "device id of the netscaler load balancer",
-                    "name": "lbdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
-                    "name": "isexclusivegslbprovider",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device name",
-                    "name": "lbdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external load balancer",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
-                    "name": "gslbprovider",
-                    "type": "boolean"
-                },
-                {
-                    "description": "public IP of the NetScaler representing GSLB site",
-                    "name": "gslbproviderpublicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network to which this netscaler device belongs to",
                     "name": "physicalnetworkid",
+                    "description": "the physical network to which this netscaler device belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "device capacity",
+                    "name": "publicinterface",
+                    "description": "the public interface of the load balancer",
+                    "type": "string"
+                },
+                {
                     "name": "lbdevicecapacity",
+                    "description": "device capacity",
                     "type": "long"
                 },
                 {
-                    "description": "private IP of the NetScaler representing GSLB site",
+                    "name": "gslbproviderpublicip",
+                    "description": "public IP of the NetScaler representing GSLB site",
+                    "type": "string"
+                },
+                {
                     "name": "gslbproviderprivateip",
+                    "description": "private IP of the NetScaler representing GSLB site",
                     "type": "string"
                 },
                 {
-                    "description": "name of the provider",
                     "name": "provider",
+                    "description": "name of the provider",
                     "type": "string"
                 },
                 {
-                    "description": "true if device is dedicated for an account",
+                    "name": "podids",
+                    "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.",
+                    "type": "list"
+                },
+                {
+                    "name": "lbdeviceid",
+                    "description": "device id of the netscaler load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "isexclusivegslbprovider",
+                    "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "privateinterface",
+                    "description": "the private interface of the load balancer",
+                    "type": "string"
+                },
+                {
                     "name": "lbdevicededicated",
+                    "description": "true if device is dedicated for an account",
                     "type": "boolean"
+                },
+                {
+                    "name": "gslbprovider",
+                    "description": "true if NetScaler device is provisioned to be a GSLB service provider",
+                    "type": "boolean"
+                },
+                {
+                    "name": "lbdevicename",
+                    "description": "device name",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "List ISO visibility and all accounts that have permissions to view this ISO.",
-            "isasync": false,
             "name": "listIsoPermissions",
+            "description": "List iso visibility and all accounts that have permissions to view this iso.",
+            "isasync": false,
+            "related": "listTemplatePermissions,listIsoPermissions",
             "params": [
                 {
-                    "description": "the template ID",
-                    "length": 255,
                     "name": "id",
-                    "related": "listIsoPermissions,listTemplatePermissions,listIsoPermissions",
+                    "description": "the template ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listTemplatePermissions,listIsoPermissions,listIsoPermissions"
                 }
             ],
-            "related": "listTemplatePermissions,listIsoPermissions",
             "response": [
                 {
-                    "description": "the list of projects the template is available for",
                     "name": "projectids",
+                    "description": "the list of projects the template is available for",
                     "type": "list"
                 },
                 {
-                    "description": "true if this template is a public template, false otherwise",
+                    "name": "domainid",
+                    "description": "the ID of the domain to which the template belongs",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the list of accounts the template is available for",
+                    "type": "list"
+                },
+                {
                     "name": "ispublic",
+                    "description": "true if this template is a public template, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the ID of the domain to which the template belongs",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the template ID",
                     "name": "id",
+                    "description": "the template ID",
                     "type": "string"
-                },
-                {
-                    "description": "the list of accounts the template is available for",
-                    "name": "account",
-                    "type": "list"
                 }
             ]
         },
         {
-            "description": "Creates a load balancer",
-            "isasync": true,
             "name": "createLoadBalancer",
+            "description": "Creates a load balancer",
+            "since": "4.2.0",
+            "isasync": true,
+            "related": "",
             "params": [
                 {
-                    "description": "the source port the network traffic will be load balanced from",
-                    "length": 255,
-                    "name": "sourceport",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "the TCP port of the virtual machine where the network traffic will be load balanced to",
-                    "length": 255,
-                    "name": "instanceport",
-                    "required": true,
-                    "type": "integer"
-                },
-                {
-                    "description": "the description of the load balancer",
-                    "length": 4096,
-                    "name": "description",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "name of the load balancer",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "load balancer algorithm (source, roundrobin, leastconn)",
-                    "length": 255,
-                    "name": "algorithm",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the source IP address the network traffic will be load balanced from",
-                    "length": 255,
-                    "name": "sourceipaddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer scheme. Supported value in this release is Internal",
-                    "length": 255,
-                    "name": "scheme",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "The guest network the load balancer will be created for",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "updateNetwork,createNetwork,listNetworks",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the network id of the source ip address",
-                    "length": 255,
                     "name": "sourceipaddressnetworkid",
-                    "related": "updateNetwork,createNetwork,listNetworks",
+                    "description": "the network id of the source ip address",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "listNetworks,updateNetwork,createNetwork"
                 },
                 {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "name": "algorithm",
+                    "description": "load balancer algorithm (source, roundrobin, leastconn)",
+                    "type": "string",
                     "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "networkid",
+                    "description": "The guest network the load balancer will be created for",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listNetworks,updateNetwork,createNetwork"
+                },
+                {
+                    "name": "scheme",
+                    "description": "the load balancer scheme. Supported value in this release is Internal",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "name",
+                    "description": "name of the load balancer",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "instanceport",
+                    "description": "the TCP port of the virtual machine where the network traffic will be load balanced to",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer",
+                    "type": "string",
+                    "length": 4096,
+                    "required": false
+                },
+                {
+                    "name": "sourceipaddress",
+                    "description": "the source IP address the network traffic will be load balanced from",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
+                },
+                {
+                    "name": "sourceport",
+                    "description": "the source port the network traffic will be load balanced from",
+                    "type": "integer",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the domain of the Load Balancer",
-                    "name": "domain",
+                    "name": "description",
+                    "description": "the description of the Load Balancer",
                     "type": "string"
                 },
                 {
-                    "description": "the list of rules associated with the Load Balancer",
-                    "name": "loadbalancerrule",
-                    "response": [
-                        {
-                            "description": "source port of the load balancer rule",
-                            "name": "sourceport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "instance port of the load balancer rule",
-                            "name": "instanceport",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the state of the load balancer rule",
-                            "name": "state",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "Load Balancer network id",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of instances associated with the Load Balancer",
-                    "name": "loadbalancerinstance",
-                    "response": [
-                        {
-                            "description": "the name of the instance",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the instance",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the state of the instance",
-                            "name": "state",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the instance ID",
-                            "name": "id",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                    "name": "algorithm",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the Load Balancer",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with the Load Balancer",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "Load Balancer source ip",
-                    "name": "sourceipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID of the Load Balancer",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the Load Balancer",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the Load Balancer",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the Load Balancer ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "Load Balancer source ip network id",
-                    "name": "sourceipaddressnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the description of the Load Balancer",
-                    "name": "description",
+                    "name": "algorithm",
+                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
                     "type": "string"
                 },
                 {
-                    "description": "the project id of the Load Balancer",
+                    "name": "networkid",
+                    "description": "Load Balancer network id",
+                    "type": "string"
+                },
+                {
+                    "name": "loadbalancerinstance",
+                    "description": "the list of instances associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the instance ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the instance",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the instance",
+                            "type": "string"
+                        },
+                        {
+                            "name": "state",
+                            "description": "the state of the instance",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the Load Balancer ID",
+                    "type": "string"
+                },
+                {
+                    "name": "loadbalancerrule",
+                    "description": "the list of rules associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "state",
+                            "description": "the state of the load balancer rule",
+                            "type": "string"
+                        },
+                        {
+                            "name": "sourceport",
+                            "description": "source port of the load balancer rule",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "instanceport",
+                            "description": "instance port of the load balancer rule",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "sourceipaddressnetworkid",
+                    "description": "Load Balancer source ip network id",
+                    "type": "string"
+                },
+                {
+                    "name": "sourceipaddress",
+                    "description": "Load Balancer source ip",
+                    "type": "string"
+                },
+                {
                     "name": "projectid",
+                    "description": "the project id of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the Load Balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the Load Balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the Load Balancer",
                     "type": "string"
                 }
-            ],
-            "since": "4.2.0"
+            ]
         },
         {
+            "name": "listBaremetalPxeServers",
             "description": "list baremetal pxe server",
             "isasync": false,
-            "name": "listBaremetalPxeServers",
+            "related": "",
             "params": [
                 {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
                     "name": "physicalnetworkid",
-                    "related": "",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "Pxe server device ID",
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "id",
-                    "required": false,
-                    "type": "long"
+                    "description": "Pxe server device ID",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "url",
                     "name": "url",
+                    "description": "url",
                     "type": "string"
                 },
                 {
-                    "description": "the physical network to which this external dhcp device belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of ",
                     "name": "id",
+                    "description": "device id of ",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this external dhcp device belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "provider",
+                    "description": "name of the provider",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "addPaloAltoFirewall",
             "description": "Adds a Palo Alto firewall device",
             "isasync": true,
-            "name": "addPaloAltoFirewall",
+            "related": "",
             "params": [
                 {
-                    "description": "Credentials to reach Palo Alto firewall device",
-                    "length": 255,
                     "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
                     "description": "Credentials to reach Palo Alto firewall device",
+                    "type": "string",
                     "length": 255,
-                    "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "supports only PaloAltoFirewall",
-                    "length": 255,
-                    "name": "networkdevicetype",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID",
-                    "length": 255,
                     "name": "physicalnetworkid",
-                    "related": "",
+                    "description": "the Physical Network ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "URL of the Palo Alto appliance.",
-                    "length": 255,
                     "name": "url",
-                    "required": true,
-                    "type": "string"
+                    "description": "URL of the Palo Alto appliance.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "networkdevicetype",
+                    "description": "supports only PaloAltoFirewall",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "password",
+                    "description": "Credentials to reach Palo Alto firewall device",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the physical network to which this Palo Alto firewall belongs to",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "name of the provider",
-                    "name": "provider",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
                     "name": "fwdevicestate",
+                    "description": "device state",
                     "type": "string"
                 },
                 {
-                    "description": "the zone ID of the external firewall",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the usage interface of the external firewall",
-                    "name": "usageinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
                     "name": "fwdevicename",
+                    "description": "device name",
                     "type": "string"
                 },
                 {
-                    "description": "the number of times to retry requests to the external firewall",
+                    "name": "username",
+                    "description": "the username that's used to log in to the external firewall",
+                    "type": "string"
+                },
+                {
                     "name": "numretries",
+                    "description": "the number of times to retry requests to the external firewall",
                     "type": "string"
                 },
                 {
-                    "description": "the timeout (in seconds) for requests to the external firewall",
+                    "name": "publiczone",
+                    "description": "the public security zone of the external firewall",
+                    "type": "string"
+                },
+                {
                     "name": "timeout",
+                    "description": "the timeout (in seconds) for requests to the external firewall",
                     "type": "string"
                 },
                 {
-                    "description": "device capacity",
+                    "name": "usageinterface",
+                    "description": "the usage interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "fwdeviceid",
+                    "description": "device id of the Palo Alto firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "privateinterface",
+                    "description": "the private interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "publicinterface",
+                    "description": "the public interface of the external firewall",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network to which this Palo Alto firewall belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the zone ID of the external firewall",
+                    "type": "string"
+                },
+                {
                     "name": "fwdevicecapacity",
+                    "description": "device capacity",
                     "type": "long"
                 },
                 {
-                    "description": "the username that's used to log in to the external firewall",
-                    "name": "username",
+                    "name": "provider",
+                    "description": "name of the provider",
                     "type": "string"
                 },
                 {
-                    "description": "the management IP address of the external firewall",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "the public interface of the external firewall",
-                    "name": "publicinterface",
-                    "type": "string"
-                },
-                {
-                    "description": "the private security zone of the external firewall",
                     "name": "privatezone",
+                    "description": "the private security zone of the external firewall",
                     "type": "string"
                 },
                 {
-                    "description": "device id of the Palo Alto firewall",
-                    "name": "fwdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public security zone of the external firewall",
-                    "name": "publiczone",
-                    "type": "string"
-                },
-                {
-                    "description": "the private interface of the external firewall",
-                    "name": "privateinterface",
+                    "name": "ipaddress",
+                    "description": "the management IP address of the external firewall",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createPrivateGateway",
             "description": "Creates a private gateway",
             "isasync": true,
-            "name": "createPrivateGateway",
+            "related": "",
             "params": [
                 {
-                    "description": "the netmask of the Private gateway",
-                    "length": 255,
-                    "name": "netmask",
-                    "required": true,
-                    "type": "string"
-                },
-                {
+                    "name": "aclid",
                     "description": "the ID of the network ACL",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "aclid",
-                    "related": "createNetworkACLList",
                     "required": false,
-                    "type": "uuid"
+                    "related": "createNetworkACLList"
                 },
                 {
-                    "description": "source NAT supported value. Default value false. If 'true' source NAT is enabled on the private gateway 'false': sourcenat is not supported",
-                    "length": 255,
-                    "name": "sourcenatsupported",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
+                    "name": "vpcid",
                     "description": "the VPC network belongs to",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "vpcid",
-                    "related": "updateVPC,listVPCs,createVPC",
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateVPC,createVPC,listVPCs"
                 },
                 {
-                    "description": "the IP address of the Private gateaway",
+                    "name": "vlan",
+                    "description": "the network implementation uri for the private gateway",
+                    "type": "string",
                     "length": 255,
-                    "name": "ipaddress",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
+                    "name": "gateway",
                     "description": "the gateway of the Private gateway",
+                    "type": "string",
                     "length": 255,
-                    "name": "gateway",
-                    "required": true,
-                    "type": "string"
+                    "required": true
                 },
                 {
-                    "description": "the uuid of the network offering to use for the private gateways network connection",
-                    "length": 255,
-                    "name": "networkofferingid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the network implementation uri for the private gateway",
-                    "length": 255,
-                    "name": "vlan",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the Physical Network ID the network belongs to",
-                    "length": 255,
-                    "name": "physicalnetworkid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the private gateway's netmask",
                     "name": "netmask",
-                    "type": "string"
+                    "description": "the netmask of the Private gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "VPC the private gateaway belongs to",
-                    "name": "vpcid",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the private gateway",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the gateway, can be Creating, Ready, Deleting",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "ACL Id set for private gateway",
-                    "name": "aclid",
-                    "type": "string"
-                },
-                {
-                    "description": "the physical network id",
-                    "name": "physicalnetworkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the zone the private gateway belongs to",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the private gateway",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the network implementation uri for the private gateway",
-                    "name": "vlan",
-                    "type": "string"
-                },
-                {
-                    "description": "the private gateway's ip address",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "Souce Nat enable status",
                     "name": "sourcenatsupported",
-                    "type": "boolean"
-                },
-                {
-                    "description": "zone id of the private gateway",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the private gateway",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain associated with the private gateway",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain associated with the private gateway",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the gateway",
-                    "name": "gateway",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the private gateway",
-                    "name": "project",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists load balancer rules.",
-            "isasync": false,
-            "name": "listLoadBalancerRules",
-            "params": [
-                {
-                    "description": "list objects by project",
+                    "description": "source NAT supported value. Default value false. If 'true' source NAT is enabled on the private gateway 'false': sourcenat is not supported",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "projectid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "name": "ipaddress",
+                    "description": "the IP address of the Private gateaway",
+                    "type": "string",
                     "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
+                    "required": true
                 },
                 {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "name": "physicalnetworkid",
+                    "description": "the Physical Network ID the network belongs to",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "isrecursive",
                     "required": false,
-                    "type": "boolean"
+                    "related": ""
                 },
                 {
-                    "description": "the name of the load balancer rule",
+                    "name": "networkofferingid",
+                    "description": "the uuid of the network offering to use for the private gateways network connection",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "name",
                     "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list by network ID the rule belongs to",
-                    "length": 255,
-                    "name": "networkid",
-                    "related": "updateNetwork,createNetwork,listNetworks",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "the ID of the virtual machine of the load balancer rule",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "List resources by tags (key/value pairs)",
-                    "length": 255,
-                    "name": "tags",
-                    "required": false,
-                    "type": "map"
-                },
-                {
-                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the load balancer rule",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the public IP address ID of the load balancer rule",
-                    "length": 255,
-                    "name": "publicipid",
-                    "related": "associateIpAddress,listPublicIpAddresses",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the availability zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list resources by account. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "related": ""
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the domain ID of the load balancer rule",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the private port",
-                    "name": "privateport",
-                    "type": "string"
-                },
-                {
-                    "description": "the list of resource tags associated with load balancer",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the protocol of the loadbalanacer rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the load balancer",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the load balancer",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain of the load balancer rule",
                     "name": "domain",
+                    "description": "the domain associated with the private gateway",
                     "type": "string"
                 },
                 {
-                    "description": "the description of the load balancer",
-                    "name": "description",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the load balancer rule",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
-                    "name": "algorithm",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the guest network the lb rule belongs to",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the load balancer rule ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the load balancer",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the zone the rule belongs to",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public port",
-                    "name": "publicport",
-                    "type": "string"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
+                    "name": "sourcenatsupported",
+                    "description": "Souce Nat enable status",
                     "type": "boolean"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "zone id of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the private gateway's ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "State of the gateway, can be Creating, Ready, Deleting",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "physicalnetworkid",
+                    "description": "the physical network id",
+                    "type": "string"
+                },
+                {
+                    "name": "netmask",
+                    "description": "the private gateway's netmask",
+                    "type": "string"
+                },
+                {
+                    "name": "aclid",
+                    "description": "ACL Id set for private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "vpcid",
+                    "description": "VPC the private gateaway belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "vlan",
+                    "description": "the network implementation uri for the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain associated with the private gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the private gateway belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the private gateway",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "getUser",
             "description": "Find user account by API key",
             "isasync": false,
-            "name": "getUser",
+            "related": "",
             "params": [
                 {
-                    "description": "API key of the user",
-                    "length": 255,
                     "name": "userapikey",
-                    "required": true,
-                    "type": "string"
+                    "description": "API key of the user",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "true if user is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
+                    "name": "secretkey",
+                    "description": "the secret key of the user",
+                    "type": "string"
                 },
                 {
-                    "description": "the account type of the user",
+                    "name": "usersource",
+                    "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the user name",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account name of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "roleid",
+                    "description": "the ID of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the user ID",
+                    "type": "string"
+                },
+                {
+                    "name": "rolename",
+                    "description": "the name of the role",
+                    "type": "string"
+                },
+                {
+                    "name": "lastname",
+                    "description": "the user lastname",
+                    "type": "string"
+                },
+                {
                     "name": "accounttype",
+                    "description": "the account type of the user",
                     "type": "short"
                 },
                 {
-                    "description": "the ID of the role",
-                    "name": "roleid",
+                    "name": "domain",
+                    "description": "the domain name of the user",
                     "type": "string"
                 },
                 {
-                    "description": "the user email address",
-                    "name": "email",
-                    "type": "string"
-                },
-                {
-                    "description": "the user ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the api key of the user",
                     "name": "apikey",
+                    "description": "the api key of the user",
                     "type": "string"
                 },
                 {
-                    "description": "the domain ID of the user",
-                    "name": "domainid",
-                    "type": "string"
+                    "name": "isdefault",
+                    "description": "true if user is default, false otherwise",
+                    "type": "boolean"
                 },
                 {
-                    "description": "the account ID of the user",
-                    "name": "accountid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the role",
-                    "name": "rolename",
-                    "type": "string"
-                },
-                {
-                    "description": "the date and time the user account was created",
                     "name": "created",
+                    "description": "the date and time the user account was created",
                     "type": "date"
                 },
                 {
-                    "description": "the user firstname",
-                    "name": "firstname",
-                    "type": "string"
-                },
-                {
-                    "description": "the account name of the user",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the user name",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the user lastname",
-                    "name": "lastname",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the user",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the timezone user was created in",
-                    "name": "timezone",
-                    "type": "string"
-                },
-                {
-                    "description": "the secret key of the user",
-                    "name": "secretkey",
-                    "type": "string"
-                },
-                {
-                    "description": "the user state",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the type of the role",
                     "name": "roletype",
+                    "description": "the type of the role",
                     "type": "string"
                 },
                 {
-                    "description": "the boolean value representing if the updating target is in caller's child domain",
+                    "name": "firstname",
+                    "description": "the user firstname",
+                    "type": "string"
+                },
+                {
+                    "name": "email",
+                    "description": "the user email address",
+                    "type": "string"
+                },
+                {
+                    "name": "timezone",
+                    "description": "the timezone user was created in",
+                    "type": "string"
+                },
+                {
+                    "name": "accountid",
+                    "description": "the account ID of the user",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the user state",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID of the user",
+                    "type": "string"
+                },
+                {
                     "name": "iscallerchilddomain",
+                    "description": "the boolean value representing if the updating target is in caller's child domain",
                     "type": "boolean"
                 }
             ]
         },
         {
-            "description": "Deletes a firewall rule",
-            "isasync": true,
-            "name": "deleteFirewallRule",
+            "name": "listLoadBalancerRules",
+            "description": "Lists load balancer rules.",
+            "isasync": false,
+            "related": "",
             "params": [
                 {
-                    "description": "the ID of the firewall rule",
+                    "name": "fordisplay",
+                    "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
+                    "type": "boolean",
                     "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "tags",
+                    "description": "List resources by tags (key/value pairs)",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "the public IP address ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listPublicIpAddresses,associateIpAddress"
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the load balancer rule",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "list resources by account. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "list objects by project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
                     "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
+                    "description": "the ID of the load balancer rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the availability zone ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listZones"
+                },
+                {
+                    "name": "networkid",
+                    "description": "list by network ID the rule belongs to",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listNetworks,updateNetwork,createNetwork"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
                 }
             ],
             "response": [
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "domainid",
+                    "description": "the domain ID of the load balancer rule",
                     "type": "string"
                 },
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
+                    "name": "publicip",
+                    "description": "the public ip address",
+                    "type": "string"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the id of the guest network the lb rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
                     "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the id of the zone the rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "algorithm",
+                    "description": "the load balancer algorithm (source, roundrobin, leastconn)",
+                    "type": "string"
+                },
+                {
+                    "name": "privateport",
+                    "description": "the private port",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "publicport",
+                    "description": "the public port",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with load balancer",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "description",
+                    "description": "the description of the load balancer",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "the public ip address id",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the load balancer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the load balancer rule ID",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the zone the load balancer rule belongs to",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the loadbalanacer rule",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the load balancer",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "uploadSslCert",
             "description": "Upload a certificate to CloudStack",
             "isasync": false,
-            "name": "uploadSslCert",
+            "related": "",
             "params": [
                 {
-                    "description": "Certificate chain of trust",
-                    "length": 2097152,
-                    "name": "certchain",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "SSL certificate",
-                    "length": 16384,
-                    "name": "certificate",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Private key",
-                    "length": 16384,
-                    "name": "privatekey",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "account that will own the SSL certificate",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "domain ID of the account owning the SSL certificate",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomains",
+                    "description": "domain ID of the account owning the SSL certificate",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": "listDomains"
                 },
                 {
-                    "description": "an optional project for the SSL certificate",
+                    "name": "account",
+                    "description": "account that will own the SSL certificate",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "certchain",
+                    "description": "Certificate chain of trust",
+                    "type": "string",
+                    "length": 2097152,
+                    "required": false
+                },
+                {
+                    "name": "privatekey",
+                    "description": "Private key",
+                    "type": "string",
+                    "length": 16384,
+                    "required": true
+                },
+                {
                     "name": "projectid",
-                    "related": "",
+                    "description": "an optional project for the SSL certificate",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "Password for the private key",
-                    "length": 255,
                     "name": "password",
-                    "required": false,
-                    "type": "string"
+                    "description": "Password for the private key",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "certificate",
+                    "description": "SSL certificate",
+                    "type": "string",
+                    "length": 16384,
+                    "required": true
+                },
+                {
+                    "name": "name",
+                    "description": "Name for the uploaded certificate",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "List of loabalancers this certificate is bound to",
+                    "name": "id",
+                    "description": "SSL certificate ID",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the network owner",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "account for the certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the certificate",
+                    "type": "string"
+                },
+                {
+                    "name": "certchain",
+                    "description": "certificate chain",
+                    "type": "string"
+                },
+                {
+                    "name": "certificate",
+                    "description": "certificate",
+                    "type": "string"
+                },
+                {
                     "name": "loadbalancerrulelist",
+                    "description": "List of loabalancers this certificate is bound to",
                     "type": "list"
                 },
                 {
-                    "description": "the project name of the certificate",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "SSL certificate ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the certificate",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "certificate",
-                    "name": "certificate",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the network owner",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the network owner",
                     "name": "domain",
+                    "description": "the domain name of the network owner",
                     "type": "string"
                 },
                 {
-                    "description": "certificate chain",
-                    "name": "certchain",
+                    "name": "name",
+                    "description": "name",
                     "type": "string"
                 },
                 {
-                    "description": "certificate fingerprint",
                     "name": "fingerprint",
-                    "type": "string"
-                },
-                {
-                    "description": "account for the certificate",
-                    "name": "account",
+                    "description": "certificate fingerprint",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "deleteFirewallRule",
+            "description": "Deletes a firewall rule",
+            "isasync": true,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the ID of the firewall rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                },
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "createVpnCustomerGateway",
             "description": "Creates site to site vpn customer gateway",
             "isasync": true,
-            "name": "createVpnCustomerGateway",
+            "related": "",
             "params": [
                 {
-                    "description": "IKE policy of the customer gateway",
-                    "length": 255,
-                    "name": "ikepolicy",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "create site-to-site VPN customer gateway for the project",
-                    "length": 255,
-                    "name": "projectid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "ESP policy of the customer gateway",
-                    "length": 255,
-                    "name": "esppolicy",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "public ip address id of the customer gateway",
-                    "length": 255,
-                    "name": "gateway",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds",
-                    "length": 255,
-                    "name": "esplifetime",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the gateway. Must be used with the domainId parameter.",
-                    "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "If DPD is enabled for VPN connection",
-                    "length": 255,
-                    "name": "dpd",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds",
-                    "length": 255,
-                    "name": "ikelifetime",
-                    "required": false,
-                    "type": "long"
-                },
-                {
-                    "description": "guest cidr list of the customer gateway",
-                    "length": 255,
                     "name": "cidrlist",
-                    "required": true,
-                    "type": "string"
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "Force Encapsulation for NAT traversal",
-                    "length": 255,
-                    "name": "forceencap",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.",
-                    "length": 255,
-                    "name": "ipsecpsk",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.",
-                    "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of this customer gateway",
-                    "length": 255,
                     "name": "name",
+                    "description": "name of this customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ikepolicy",
+                    "description": "IKE policy of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "ikelifetime",
+                    "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipsecpsk",
+                    "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "esplifetime",
+                    "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds",
+                    "type": "long",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the gateway. Must be used with the domainId parameter.",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "projectid",
+                    "description": "create site-to-site VPN customer gateway for the project",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "string"
+                    "since": "4.6",
+                    "related": ""
+                },
+                {
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "forceencap",
+                    "description": "Force Encapsulation for NAT traversal",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "dpd",
+                    "description": "If DPD is enabled for VPN connection",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "esppolicy",
+                    "description": "ESP policy of the customer gateway",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
-                    "name": "forceencap",
-                    "type": "boolean"
+                    "name": "account",
+                    "description": "the owner",
+                    "type": "string"
                 },
                 {
-                    "description": "Lifetime of ESP SA of customer gateway",
+                    "name": "id",
+                    "description": "the vpn gateway ID",
+                    "type": "string"
+                },
+                {
                     "name": "esplifetime",
+                    "description": "Lifetime of ESP SA of customer gateway",
                     "type": "long"
                 },
                 {
-                    "description": "the project name",
-                    "name": "project",
+                    "name": "domain",
+                    "description": "the domain name of the owner",
                     "type": "string"
                 },
                 {
-                    "description": "name of the customer gateway",
+                    "name": "projectid",
+                    "description": "the project id",
+                    "type": "string"
+                },
+                {
+                    "name": "dpd",
+                    "description": "if DPD is enabled for customer gateway",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "guest cidr list of the customer gateway",
+                    "type": "string"
+                },
+                {
                     "name": "name",
+                    "description": "name of the customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "the date and time the host was removed",
                     "name": "removed",
+                    "description": "the date and time the host was removed",
                     "type": "date"
                 },
                 {
-                    "description": "the domain name of the owner",
-                    "name": "domain",
+                    "name": "ipaddress",
+                    "description": "guest ip of the customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "the project id",
-                    "name": "projectid",
+                    "name": "gateway",
+                    "description": "public ip address id of the customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "IPsec preshared-key of customer gateway",
-                    "name": "ipsecpsk",
+                    "name": "project",
+                    "description": "the project name",
                     "type": "string"
                 },
                 {
-                    "description": "if DPD is enabled for customer gateway",
-                    "name": "dpd",
+                    "name": "ikepolicy",
+                    "description": "IKE policy of customer gateway",
+                    "type": "string"
+                },
+                {
+                    "name": "forceencap",
+                    "description": "if Force NAT Encapsulation is enabled for customer gateway",
                     "type": "boolean"
                 },
                 {
-                    "description": "public ip address id of the customer gateway",
-                    "name": "gateway",
+                    "name": "esppolicy",
+                    "description": "IPsec policy of customer gateway",
                     "type": "string"
                 },
                 {
-                    "description": "guest ip of the customer gateway",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "Lifetime of IKE SA of customer gateway",
                     "name": "ikelifetime",
+                    "description": "Lifetime of IKE SA of customer gateway",
                     "type": "long"
                 },
                 {
+                    "name": "domainid",
                     "description": "the domain id of the owner",
-                    "name": "domainid",
                     "type": "string"
                 },
                 {
-                    "description": "guest cidr list of the customer gateway",
-                    "name": "cidrlist",
-                    "type": "string"
-                },
-                {
-                    "description": "IPsec policy of customer gateway",
-                    "name": "esppolicy",
-                    "type": "string"
-                },
-                {
-                    "description": "the owner",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the vpn gateway ID",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "IKE policy of customer gateway",
-                    "name": "ikepolicy",
+                    "name": "ipsecpsk",
+                    "description": "IPsec preshared-key of customer gateway",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Retrieves a Cisco Nexus 1000v Virtual Switch Manager device associated with a Cluster",
-            "isasync": false,
-            "name": "listCiscoNexusVSMs",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Id of the CloudStack cluster in which the Cisco Nexus 1000v VSM appliance.",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Id of the CloudStack cluster in which the Cisco Nexus 1000v VSM appliance.",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "control vlan id of the VSM",
-                    "name": "vsmctrlvlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "management vlan id of the VSM",
-                    "name": "vsmmgmtvlanid",
-                    "type": "string"
-                },
-                {
-                    "description": "device id of the Cisco N1KV VSM device",
-                    "name": "vsmdeviceid",
-                    "type": "string"
-                },
-                {
-                    "description": "device name",
-                    "name": "vsmdevicename",
-                    "type": "string"
-                },
-                {
-                    "description": "device state",
-                    "name": "vsmdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "packet vlan id of the VSM",
-                    "name": "vsmpktvlanid",
-                    "type": "int"
-                },
-                {
-                    "description": "The VSM is a switch supervisor. This is the VSM's switch domain id",
-                    "name": "vsmdomainid",
-                    "type": "string"
-                },
-                {
-                    "description": "The Device State (Enabled/Disabled) of the VSM",
-                    "name": "vsmdevicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "The Config State (Primary/Standby) of the VSM",
-                    "name": "vsmconfigstate",
-                    "type": "string"
-                },
-                {
-                    "description": "the management IP address of the external Cisco Nexus 1000v Virtual Supervisor Module",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "The mode of the VSM (standalone/HA)",
-                    "name": "vsmconfigmode",
-                    "type": "string"
-                },
-                {
-                    "description": "storage vlan id of the VSM",
-                    "name": "vsmstoragevlanid",
-                    "type": "int"
-                }
-            ]
-        },
-        {
-            "description": "Adds vpn users",
+            "name": "createManagementNetworkIpRange",
+            "description": "Creates a Management network IP range.",
+            "since": "4.11.0.0",
             "isasync": true,
-            "name": "addVpnUser",
+            "related": "",
             "params": [
                 {
-                    "description": "password for the username",
+                    "name": "endip",
+                    "description": "The ending IP address.",
+                    "type": "string",
                     "length": 255,
-                    "name": "password",
+                    "required": false
+                },
+                {
+                    "name": "startip",
+                    "description": "The starting IP address.",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "podid",
+                    "description": "UUID of POD, where the IP range belongs to.",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "string"
+                    "related": "createManagementNetworkIpRange"
                 },
                 {
-                    "description": "add vpn user to the specific project",
+                    "name": "gateway",
+                    "description": "The gateway for the management network.",
+                    "type": "string",
                     "length": 255,
-                    "name": "projectid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
+                    "required": true
                 },
                 {
-                    "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.",
+                    "name": "forsystemvms",
+                    "description": "Specify if range is dedicated for CPVM and SSVM.",
+                    "type": "boolean",
                     "length": 255,
-                    "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
+                    "required": false
                 },
                 {
-                    "description": "username for the vpn user",
+                    "name": "vlan",
+                    "description": "Optional. The vlan id the ip range sits on, default to Null when it is not specificed which means you network is not on any Vlan",
+                    "type": "string",
                     "length": 255,
-                    "name": "username",
-                    "required": true,
-                    "type": "string"
+                    "required": false
                 },
                 {
-                    "description": "an optional account for the vpn user. Must be used with domainId.",
+                    "name": "netmask",
+                    "description": "The netmask for the management network.",
+                    "type": "string",
                     "length": 255,
-                    "name": "account",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the vpn userID",
+                    "name": "netmask",
+                    "description": "the netmask of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "the allocation state of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "capacity",
+                    "description": "the capacity of the Pod",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "capacitytotal",
+                            "description": "the total capacity available",
+                            "type": "long"
+                        },
+                        {
+                            "name": "podid",
+                            "description": "the Pod ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zonename",
+                            "description": "the Zone name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clusterid",
+                            "description": "the Cluster ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "podname",
+                            "description": "the Pod name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the capacity name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "clustername",
+                            "description": "the Cluster name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "zoneid",
+                            "description": "the Zone ID",
+                            "type": "string"
+                        },
+                        {
+                            "name": "capacityallocated",
+                            "description": "the capacity currently in allocated",
+                            "type": "long"
+                        },
+                        {
+                            "name": "capacityused",
+                            "description": "the capacity currently in use",
+                            "type": "long"
+                        },
+                        {
+                            "name": "percentused",
+                            "description": "the percentage of capacity currently in use",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the capacity type",
+                            "type": "short"
+                        }
+                    ]
+                },
+                {
                     "name": "id",
+                    "description": "the ID of the Pod",
                     "type": "string"
                 },
                 {
-                    "description": "the domain name of the account of the remote access vpn",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the username of the vpn user",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the remote access vpn",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain id of the account of the remote access vpn",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the Vpn User",
-                    "name": "state",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "add a baremetal host",
-            "isasync": false,
-            "name": "addBaremetalHost",
-            "params": [
-                {
-                    "description": "the Pod ID for the host",
-                    "length": 255,
-                    "name": "podid",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the cluster ID for the host",
-                    "length": 255,
-                    "name": "clusterid",
-                    "related": "",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list of tags to be added to the host",
-                    "length": 255,
-                    "name": "hosttags",
-                    "required": false,
+                    "name": "startip",
+                    "description": "the starting IP for the Pod",
                     "type": "list"
                 },
                 {
-                    "description": "the password for the host",
+                    "name": "name",
+                    "description": "the name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "vlanid",
+                    "description": "indicates Vlan ID for the range",
+                    "type": "list"
+                },
+                {
+                    "name": "gateway",
+                    "description": "the gateway of the Pod",
+                    "type": "string"
+                },
+                {
+                    "name": "endip",
+                    "description": "the ending IP for the Pod",
+                    "type": "list"
+                },
+                {
+                    "name": "forsystemvms",
+                    "description": "indicates if range is dedicated for CPVM and SSVM",
+                    "type": "list"
+                }
+            ]
+        },
+        {
+            "name": "addVpnUser",
+            "description": "Adds vpn users",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "account",
+                    "description": "an optional account for the vpn user. Must be used with domainId.",
+                    "type": "string",
                     "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "domainid",
+                    "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "projectid",
+                    "description": "add vpn user to the specific project",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
                     "name": "password",
-                    "required": true,
-                    "type": "string"
+                    "description": "password for the username",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 },
                 {
-                    "description": "ip address intentionally allocated to this host after provisioning",
-                    "length": 255,
-                    "name": "ipaddress",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID for the host",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the username for the host",
-                    "length": 255,
                     "name": "username",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the host URL",
+                    "description": "username for the vpn user",
+                    "type": "string",
                     "length": 255,
-                    "name": "url",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "the cluster name for the host",
-                    "length": 255,
-                    "name": "clustername",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "hypervisor type of the host",
-                    "length": 255,
-                    "name": "hypervisor",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "Allocation state of this Host for allocation of new resources",
-                    "length": 255,
-                    "name": "allocationstate",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the Zone name of the host",
-                    "name": "zonename",
+                    "name": "domain",
+                    "description": "the domain name of the account of the remote access vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the CPU number of the host",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the date and time the host was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the hypervisor version",
-                    "name": "hypervisorversion",
+                    "name": "domainid",
+                    "description": "the domain id of the account of the remote access vpn",
                     "type": "string"
                 },
                 {
-                    "description": "the OS category name of the host",
-                    "name": "oscategoryname",
-                    "type": "string"
-                },
-                {
-                    "description": "the host out-of-band management information",
-                    "name": "outofbandmanagement",
-                    "type": "outofbandmanagementresponse"
-                },
-                {
-                    "description": "the total disk size of the host",
-                    "name": "disksizetotal",
-                    "type": "long"
-                },
-                {
-                    "description": "true if the host is disconnected. False otherwise.",
-                    "name": "disconnected",
-                    "type": "date"
-                },
-                {
-                    "description": "the memory total of the host",
-                    "name": "memorytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the host",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the CPU speed of the host",
-                    "name": "cpuspeed",
-                    "type": "long"
-                },
-                {
-                    "description": "the amount of the host's memory currently allocated",
-                    "name": "memoryallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "capabilities of the host",
-                    "name": "capabilities",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
-                    "name": "hahost",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the Zone ID of the host",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "comma-separated list of tags for the host",
-                    "name": "hosttags",
-                    "type": "string"
-                },
-                {
-                    "description": "the host hypervisor",
-                    "name": "hypervisor",
-                    "type": "hypervisortype"
-                },
-                {
-                    "description": "the cluster name of the host",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod ID of the host",
-                    "name": "podid",
-                    "type": "string"
-                },
-                {
-                    "description": "Host details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the amount of the host's CPU currently allocated",
-                    "name": "cpuallocated",
-                    "type": "string"
-                },
-                {
-                    "description": "the Pod name of the host",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the host's currently allocated disk size",
-                    "name": "disksizeallocated",
-                    "type": "long"
-                },
-                {
-                    "description": "the host type",
-                    "name": "type",
-                    "type": "type"
-                },
-                {
-                    "description": "the state of the host",
                     "name": "state",
+                    "description": "the state of the Vpn User",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "username",
+                    "description": "the username of the vpn user",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the vpn userID",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "addBaremetalHost",
+            "description": "add a baremetal host",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "hypervisor",
+                    "description": "hypervisor type of the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                },
+                {
+                    "name": "url",
+                    "description": "the host URL",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "username",
+                    "description": "the username for the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": ""
+                },
+                {
+                    "name": "password",
+                    "description": "the password for the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
+                },
+                {
+                    "name": "allocationstate",
+                    "description": "Allocation state of this Host for allocation of new resources",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "clustername",
+                    "description": "the cluster name for the host",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "ip address intentionally allocated to this host after provisioning",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "hosttags",
+                    "description": "list of tags to be added to the host",
+                    "type": "list",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID for the host",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "listZones"
+                }
+            ],
+            "response": [
+                {
+                    "name": "state",
+                    "description": "the state of the host",
                     "type": "status"
                 },
                 {
-                    "description": "the date and time the host was removed",
-                    "name": "removed",
-                    "type": "date"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the cluster ID of the host",
-                    "name": "clusterid",
+                    "name": "podname",
+                    "description": "the Pod name of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the OS category ID of the host",
-                    "name": "oscategoryid",
+                    "name": "memorywithoverprovisioning",
+                    "description": "the amount of the host's memory after applying the mem.overprovisioning.factor",
                     "type": "string"
                 },
                 {
-                    "description": "the cluster type of the cluster that host belongs to",
                     "name": "clustertype",
+                    "description": "the cluster type of the cluster that host belongs to",
                     "type": "string"
                 },
                 {
-                    "description": "events available for the host",
-                    "name": "events",
+                    "name": "podid",
+                    "description": "the Pod ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the cpu average load on the host",
-                    "name": "averageload",
-                    "type": "long"
+                    "name": "zonename",
+                    "description": "the Zone name of the host",
+                    "type": "string"
                 },
                 {
-                    "description": "the amount of the host's memory currently used",
-                    "name": "memoryused",
-                    "type": "long"
-                },
-                {
-                    "description": "GPU cards present in the host",
                     "name": "gpugroup",
+                    "description": "GPU cards present in the host",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "GPU cards present in the host",
                             "name": "gpugroupname",
+                            "description": "GPU cards present in the host",
                             "type": "string"
                         },
                         {
-                            "description": "the list of enabled vGPUs",
                             "name": "vgpu",
+                            "description": "the list of enabled vGPUs",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "Video RAM for this vGPU type",
-                                    "name": "videoram",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum Y resolution per display",
                                     "name": "maxresolutiony",
+                                    "description": "Maximum Y resolution per display",
                                     "type": "long"
                                 },
                                 {
-                                    "description": "Maximum displays per user",
-                                    "name": "maxheads",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
-                                    "name": "maxvgpuperpgpu",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
-                                    "name": "maxcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Maximum X resolution per display",
-                                    "name": "maxresolutionx",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
-                                    "name": "remainingcapacity",
-                                    "type": "long"
-                                },
-                                {
-                                    "description": "Model Name of vGPU",
                                     "name": "vgputype",
+                                    "description": "Model Name of vGPU",
                                     "type": "string"
+                                },
+                                {
+                                    "name": "videoram",
+                                    "description": "Video RAM for this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxresolutionx",
+                                    "description": "Maximum X resolution per display",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxvgpuperpgpu",
+                                    "description": "Maximum no. of vgpu per gpu card (pgpu)",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "remainingcapacity",
+                                    "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxheads",
+                                    "description": "Maximum displays per user",
+                                    "type": "long"
+                                },
+                                {
+                                    "name": "maxcapacity",
+                                    "description": "Maximum vgpu can be created with this vgpu type on the given gpu group",
+                                    "type": "long"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
-                    "name": "cpuwithoverprovisioning",
+                    "name": "oscategoryid",
+                    "description": "the OS category ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "the incoming network traffic on the host",
-                    "name": "networkkbsread",
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
                     "type": "long"
                 },
                 {
-                    "description": "the date and time the host was last pinged",
-                    "name": "lastpinged",
+                    "name": "created",
+                    "description": "the date and time the host was created",
                     "type": "date"
                 },
                 {
-                    "description": "the number of CPU sockets on the host",
-                    "name": "cpusockets",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the host",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the host version",
-                    "name": "version",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the host's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "the management server ID of the host",
                     "name": "managementserverid",
+                    "description": "the management server ID of the host",
                     "type": "long"
                 },
                 {
-                    "description": "the IP address of the host",
-                    "name": "ipaddress",
+                    "name": "id",
+                    "description": "the ID of the host",
                     "type": "string"
                 },
                 {
-                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
-                    "name": "suitableformigration",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if local storage is active, false otherwise",
-                    "name": "islocalstorageactive",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the resource state of the host",
                     "name": "resourcestate",
+                    "description": "the resource state of the host",
                     "type": "string"
                 },
                 {
-                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
-                    "name": "hasenoughcapacity",
+                    "name": "cpunumber",
+                    "description": "the CPU number of the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "type",
+                    "description": "the host type",
+                    "type": "type"
+                },
+                {
+                    "name": "averageload",
+                    "description": "the cpu average load on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "comma-separated list of tags for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "lastpinged",
+                    "description": "the date and time the host was last pinged",
+                    "type": "date"
+                },
+                {
+                    "name": "oscategoryname",
+                    "description": "the OS category name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "suitableformigration",
+                    "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise",
                     "type": "boolean"
+                },
+                {
+                    "name": "hypervisorversion",
+                    "description": "the hypervisor version",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the host's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "version",
+                    "description": "the host version",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizetotal",
+                    "description": "the total disk size of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "lastannotated",
+                    "description": "the last time this host was annotated",
+                    "type": "date"
+                },
+                {
+                    "name": "clusterid",
+                    "description": "the cluster ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "cpusockets",
+                    "description": "the number of CPU sockets on the host",
+                    "type": "integer"
+                },
+                {
+                    "name": "username",
+                    "description": "the admin that annotated this host",
+                    "type": "string"
+                },
+                {
+                    "name": "disksizeallocated",
+                    "description": "the host's currently allocated disk size",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "Host details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "cpuwithoverprovisioning",
+                    "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ",
+                    "type": "string"
+                },
+                {
+                    "name": "disconnected",
+                    "description": "true if the host is disconnected. False otherwise.",
+                    "type": "date"
+                },
+                {
+                    "name": "hahost",
+                    "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "outofbandmanagement",
+                    "description": "the host out-of-band management information",
+                    "type": "outofbandmanagementresponse"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the IP address of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "hasenoughcapacity",
+                    "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the last annotation set on this host by an admin",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the host hypervisor",
+                    "type": "hypervisortype"
+                },
+                {
+                    "name": "capabilities",
+                    "description": "capabilities of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryallocated",
+                    "description": "the amount of the host's memory currently allocated",
+                    "type": "long"
+                },
+                {
+                    "name": "islocalstorageactive",
+                    "description": "true if local storage is active, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "hostha",
+                    "description": "the host HA information information",
+                    "type": "hostharesponse"
+                },
+                {
+                    "name": "memoryused",
+                    "description": "the amount of the host's memory currently used",
+                    "type": "long"
+                },
+                {
+                    "name": "removed",
+                    "description": "the date and time the host was removed",
+                    "type": "date"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the CPU speed of the host",
+                    "type": "long"
+                },
+                {
+                    "name": "clustername",
+                    "description": "the cluster name of the host",
+                    "type": "string"
+                },
+                {
+                    "name": "events",
+                    "description": "events available for the host",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytotal",
+                    "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning",
+                    "type": "long"
+                },
+                {
+                    "name": "cpuallocated",
+                    "description": "the amount of the host's CPU currently allocated",
+                    "type": "string"
                 }
             ]
         },
         {
-            "description": "Deletes a role permission",
+            "name": "removeAnnotation",
+            "description": "remove an annotation.",
+            "since": "4.11",
             "isasync": false,
-            "name": "deleteRolePermission",
-            "params": [
-                {
-                    "description": "ID of the role permission",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "response": [
-                {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
-                },
-                {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
-                    "type": "string"
-                }
-            ],
-            "since": "4.9.0"
-        },
-        {
-            "description": "Updates remote access vpn",
-            "isasync": true,
-            "name": "updateRemoteAccessVpn",
-            "params": [
-                {
-                    "description": "an optional field, whether to the display the vpn to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
-                },
-                {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                },
-                {
-                    "description": "id of the remote access vpn",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateRemoteAccessVpn",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
             "related": "",
-            "response": [
-                {
-                    "description": "the project id of the vpn",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the range of ips to allocate to the clients",
-                    "name": "iprange",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vpn",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the account of the remote access vpn",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the remote access vpn",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address of the vpn server",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "the ipsec preshared key",
-                    "name": "presharedkey",
-                    "type": "string"
-                },
-                {
-                    "description": "is vpn for display to the regular user",
-                    "name": "fordisplay",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain id of the account of the remote access vpn",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the domain name of the account of the remote access vpn",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address of the vpn server",
-                    "name": "publicipid",
-                    "type": "string"
-                }
-            ],
-            "since": "4.4"
-        },
-        {
-            "description": "Updates VPC offering",
-            "isasync": true,
-            "name": "updateVPCOffering",
             "params": [
                 {
-                    "description": "the name of the VPC offering",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the VPC offering",
-                    "length": 255,
                     "name": "id",
-                    "related": "updateVPCOffering",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the display text of the VPC offering",
+                    "description": "the id of the annotation",
+                    "type": "string",
                     "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "update state for the VPC offering; supported states - Enabled/Disabled",
-                    "length": 255,
-                    "name": "state",
-                    "required": false,
-                    "type": "string"
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "an alternate display text of the vpc offering.",
-                    "name": "displaytext",
+                    "name": "id",
+                    "description": "the (uu)id of the annotation",
                     "type": "string"
                 },
                 {
-                    "description": " indicates if the vpc offering supports distributed router for one-hop forwarding",
-                    "name": "distributedvpcrouter",
-                    "type": "boolean"
+                    "name": "userid",
+                    "description": "The (uu)id of the user that entered the annotation",
+                    "type": "string"
                 },
                 {
-                    "description": "the date this vpc offering was created",
-                    "name": "created",
+                    "name": "entitytype",
+                    "description": "the type of the annotated entity",
+                    "type": "string"
+                },
+                {
+                    "name": "annotation",
+                    "description": "the contents of the annotation",
+                    "type": "string"
+                },
+                {
+                    "name": "removed",
+                    "description": "the removal timestamp for this annotation",
                     "type": "date"
                 },
                 {
-                    "description": " indicated if the offering can support region level vpc",
-                    "name": "supportsregionLevelvpc",
+                    "name": "entityid",
+                    "description": "the (uu)id of the entitiy to which this annotation pertains",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the creation timestamp for this annotation",
+                    "type": "date"
+                }
+            ]
+        },
+        {
+            "name": "deleteRolePermission",
+            "description": "Deletes a role permission",
+            "since": "4.9.0",
+            "isasync": false,
+            "params": [
+                {
+                    "name": "id",
+                    "description": "ID of the role permission",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the vpc offering",
-                    "name": "name",
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
-                },
+                }
+            ]
+        },
+        {
+            "name": "releasePodIpAddress",
+            "description": "Releases a Pod IP back to the Pod",
+            "isasync": false,
+            "params": [
                 {
-                    "description": "the id of the vpc offering",
                     "name": "id",
+                    "description": "UUID of the Pod IP",
+                    "type": "long",
+                    "length": 255,
+                    "required": true
+                }
+            ],
+            "response": [
+                {
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateVPCOffering",
+            "description": "Updates VPC offering",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "the id of the VPC offering",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVPCOffering"
+                },
+                {
+                    "name": "state",
+                    "description": "update state for the VPC offering; supported states - Enabled/Disabled",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the VPC offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the VPC offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "distributedvpcrouter",
+                    "description": " indicates if the vpc offering supports distributed router for one-hop forwarding",
+                    "type": "boolean"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the vpc offering",
                     "type": "string"
                 },
                 {
-                    "description": "the list of supported services",
+                    "name": "created",
+                    "description": "the date this vpc offering was created",
+                    "type": "date"
+                },
+                {
+                    "name": "supportsregionLevelvpc",
+                    "description": " indicated if the offering can support region level vpc",
+                    "type": "boolean"
+                },
+                {
                     "name": "service",
+                    "description": "the list of supported services",
+                    "type": "list",
                     "response": [
                         {
-                            "description": "the list of capabilities",
-                            "name": "capability",
-                            "response": [
-                                {
-                                    "description": "can this service capability value can be choosable while creatine network offerings",
-                                    "name": "canchooseservicecapability",
-                                    "type": "boolean"
-                                },
-                                {
-                                    "description": "the capability value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the capability name",
-                                    "name": "name",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "list"
-                        },
-                        {
-                            "description": "the service name",
                             "name": "name",
+                            "description": "the service name",
                             "type": "string"
                         },
                         {
-                            "description": "the service provider name",
-                            "name": "provider",
+                            "name": "capability",
+                            "description": "the list of capabilities",
+                            "type": "list",
                             "response": [
                                 {
-                                    "description": "the physical network this belongs to",
-                                    "name": "physicalnetworkid",
+                                    "name": "value",
+                                    "description": "the capability value",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "state of the network provider",
-                                    "name": "state",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "true if individual services can be enabled/disabled",
-                                    "name": "canenableindividualservice",
+                                    "name": "canchooseservicecapability",
+                                    "description": "can this service capability value can be choosable while creatine network offerings",
                                     "type": "boolean"
                                 },
                                 {
-                                    "description": "the destination physical network",
-                                    "name": "destinationphysicalnetworkid",
+                                    "name": "name",
+                                    "description": "the capability name",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "provider",
+                            "description": "the service provider name",
+                            "type": "list",
+                            "response": [
+                                {
+                                    "name": "id",
+                                    "description": "uuid of the network provider",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "services for this provider",
+                                    "name": "destinationphysicalnetworkid",
+                                    "description": "the destination physical network",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "servicelist",
+                                    "description": "services for this provider",
                                     "type": "list"
                                 },
                                 {
-                                    "description": "uuid of the network provider",
-                                    "name": "id",
+                                    "name": "state",
+                                    "description": "state of the network provider",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the provider name",
+                                    "name": "canenableindividualservice",
+                                    "description": "true if individual services can be enabled/disabled",
+                                    "type": "boolean"
+                                },
+                                {
+                                    "name": "physicalnetworkid",
+                                    "description": "the physical network this belongs to",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "name",
+                                    "description": "the provider name",
                                     "type": "string"
                                 }
-                            ],
-                            "type": "list"
+                            ]
                         }
-                    ],
-                    "type": "list"
+                    ]
                 },
                 {
-                    "description": "state of the vpc offering. Can be Disabled/Enabled",
+                    "name": "isdefault",
+                    "description": "true if vpc offering is default, false otherwise",
+                    "type": "boolean"
+                },
+                {
                     "name": "state",
+                    "description": "state of the vpc offering. Can be Disabled/Enabled",
                     "type": "string"
                 },
                 {
-                    "description": "true if vpc offering is default, false otherwise",
-                    "name": "isdefault",
-                    "type": "boolean"
+                    "name": "name",
+                    "description": "the name of the vpc offering",
+                    "type": "string"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the vpc offering.",
+                    "type": "string"
                 }
             ]
         },
         {
+            "name": "updateRemoteAccessVpn",
+            "description": "Updates remote access vpn",
+            "since": "4.4",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "id of the remote access vpn",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateRemoteAccessVpn"
+                },
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the vpn to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                }
+            ],
+            "response": [
+                {
+                    "name": "presharedkey",
+                    "description": "the ipsec preshared key",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "the public ip address of the vpn server",
+                    "type": "string"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is vpn for display to the regular user",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domain",
+                    "description": "the domain name of the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "iprange",
+                    "description": "the range of ips to allocate to the clients",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "the public ip address of the vpn server",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account of the remote access vpn",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "scaleVirtualMachine",
             "description": "Scales the virtual machine to a new service offering.",
             "isasync": true,
-            "name": "scaleVirtualMachine",
             "params": [
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "the ID of the service offering for the virtual machine",
-                    "length": 255,
                     "name": "serviceofferingid",
-                    "related": "updateServiceOffering,listServiceOfferings",
+                    "description": "the ID of the service offering for the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateServiceOffering,listServiceOfferings"
                 },
                 {
-                    "description": "name value pairs of custom parameters for cpu,memory and cpunumber. example details[i].name=value",
-                    "length": 255,
                     "name": "details",
-                    "required": false,
-                    "type": "map"
+                    "description": "name value pairs of custom parameters for cpu,memory and cpunumber. example details[i].name=value",
+                    "type": "map",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
                     "name": "success",
+                    "description": "true if operation is executed successfully",
                     "type": "boolean"
                 },
                 {
-                    "description": "any text associated with the success or failure",
                     "name": "displaytext",
+                    "description": "any text associated with the success or failure",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "destroyVirtualMachine",
             "description": "Destroys a virtual machine.",
             "isasync": true,
-            "name": "destroyVirtualMachine",
+            "related": "updateVMAffinityGroup,startVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
                     "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,destroyVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
                     "required": true,
-                    "type": "uuid"
+                    "related": "updateVMAffinityGroup,startVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 },
                 {
-                    "description": "If true is passed, the vm is expunged immediately. False by default.",
-                    "length": 255,
                     "name": "expunge",
+                    "description": "If true is passed, the vm is expunged immediately. False by default.",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.2.1",
-                    "type": "boolean"
+                    "since": "4.2.1"
                 }
             ],
-            "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
                     "type": "long"
                 },
                 {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
                     "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
                     "type": "string"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the project name of the vm",
                     "name": "project",
+                    "description": "the project name of the vm",
                     "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date when this virtual machine was created",
                     "type": "date"
                 },
                 {
-                    "description": "the amount of the vm's CPU currently used",
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
                     "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
                 },
                 {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
                     "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
                             "name": "description",
+                            "description": "the description of the security group",
                             "type": "string"
                         },
                         {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
                         },
                         {
-                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
                             "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
                             "type": "integer"
                         },
                         {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
                             "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
                             "response": [
                                 {
-                                    "description": "the id of the security group rule",
                                     "name": "ruleid",
+                                    "description": "the id of the security group rule",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
                                     "name": "protocol",
+                                    "description": "the protocol of the security group rule",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
                                     "type": "integer"
                                 },
                                 {
-                                    "description": "the list of resource tags associated with the rule",
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
                                     "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
                                     "response": [
                                         {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
                                             "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
                                             "type": "string"
                                         }
-                                    ],
-                                    "type": "set"
+                                    ]
                                 },
                                 {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
                                     "type": "integer"
                                 },
                                 {
-                                    "description": "account owning the security group rule",
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
                                     "name": "account",
+                                    "description": "account owning the security group rule",
                                     "type": "string"
                                 },
                                 {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
                                 }
-                            ],
+                            ]
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
                             "type": "set"
                         },
                         {
-                            "description": "the project id of the group",
-                            "name": "projectid",
+                            "name": "account",
+                            "description": "the account owning the security group",
                             "type": "string"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
                 },
                 {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
                     "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
                     "type": "integer"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
+                    "type": "integer"
                 },
                 {
 
                 },
                 {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
                 },
                 {
+                    "name": "publicipid",
                     "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
                     "type": "string"
                 },
                 {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
+                    "name": "name",
+                    "description": "the name of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the ISO attached to the virtual machine",
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
                     "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
-                    "type": "integer"
-                }
-            ]
-        },
-        {
-            "description": "Updates egress firewall rule ",
-            "isasync": true,
-            "name": "updateEgressFirewallRule",
-            "params": [
-                {
-                    "description": "the ID of the egress firewall rule",
-                    "length": 255,
-                    "name": "id",
-                    "related": "",
-                    "required": true,
-                    "type": "uuid"
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
                 },
                 {
-                    "description": "an optional field, whether to the display the rule to the end user or not",
-                    "length": 255,
-                    "name": "fordisplay",
-                    "required": false,
-                    "since": "4.4",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
-                    "length": 255,
-                    "name": "customid",
-                    "required": false,
-                    "since": "4.4",
-                    "type": "string"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the protocol of the firewall rule",
-                    "name": "protocol",
-                    "type": "string"
-                },
-                {
-                    "description": "the network id of the firewall rule",
-                    "name": "networkid",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address for the firewall rule",
-                    "name": "ipaddress",
-                    "type": "string"
-                },
-                {
-                    "description": "type of the icmp message being sent",
-                    "name": "icmptype",
-                    "type": "integer"
-                },
-                {
-                    "description": "is rule for display to the regular user",
-                    "name": "fordisplay",
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "error code for this icmp message",
-                    "name": "icmpcode",
-                    "type": "integer"
-                },
-                {
-                    "description": "the cidr list to forward traffic from",
-                    "name": "cidrlist",
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
                     "type": "string"
                 },
                 {
-                    "description": "the list of resource tags associated with the rule",
-                    "name": "tags",
-                    "response": [
-                        {
-                            "description": "id of the resource",
-                            "name": "resourceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name where tag belongs to",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "customer associated with the tag",
-                            "name": "customer",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag key name",
-                            "name": "key",
-                            "type": "string"
-                        },
-                        {
-                            "description": "tag value",
-                            "name": "value",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the domain associated with the tag",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain associated with the tag",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account associated with the tag",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "resource type",
-                            "name": "resourcetype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project id the tag belongs to",
-                            "name": "projectid",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "list"
-                },
-                {
-                    "description": "the ID of the firewall rule",
-                    "name": "id",
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
                     "type": "string"
                 },
                 {
-                    "description": "the starting port of firewall rule's port range",
-                    "name": "startport",
-                    "type": "integer"
-                },
-                {
-                    "description": "the state of the rule",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the public ip address id for the firewall rule",
-                    "name": "ipaddressid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ending port of firewall rule's port range",
-                    "name": "endport",
-                    "type": "integer"
-                }
-            ],
-            "since": "4.4"
-        },
-        {
-            "description": "Lists all supported OS categories for this cloud.",
-            "isasync": false,
-            "name": "listOsCategories",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "list Os category by id",
-                    "length": 255,
-                    "name": "id",
-                    "related": "listOsCategories",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "list os category by name",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "since": "3.0.1",
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the name of the OS category",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the OS category",
-                    "name": "id",
-                    "type": "string"
-                }
-            ]
-        },
-        {
-            "description": "Lists all available service offerings.",
-            "isasync": false,
-            "name": "listServiceOfferings",
-            "params": [
-                {
-                    "description": "ID of the service offering",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateServiceOffering,listServiceOfferings",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "name of the service offering",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "list only resources belonging to the domain specified",
-                    "length": 255,
                     "name": "domainid",
-                    "related": "listDomains",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
+                    "description": "the ID of the domain in which the virtual machine exists",
                     "type": "string"
                 },
                 {
-                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
-                    "length": 255,
-                    "name": "listall",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "is this a system vm offering",
-                    "length": 255,
-                    "name": "issystem",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the virtual machine. Pass this in if you want to see the available service offering that a virtual machine can be changed to.",
-                    "length": 255,
-                    "name": "virtualmachineid",
-                    "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
-                    "length": 255,
-                    "name": "isrecursive",
-                    "required": false,
-                    "type": "boolean"
-                },
-                {
-                    "description": "the system VM type. Possible types are \"consoleproxy\", \"secondarystoragevm\" or \"domainrouter\".",
-                    "length": 255,
-                    "name": "systemvmtype",
-                    "required": false,
-                    "type": "string"
-                }
-            ],
-            "related": "updateServiceOffering",
-            "response": [
-                {
-                    "description": "bytes read rate of the service offering",
-                    "name": "diskBytesReadRate",
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
                     "type": "long"
                 },
                 {
-                    "description": "an alternate display text of the service offering.",
-                    "name": "displaytext",
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the memory in MB",
-                    "name": "memory",
-                    "type": "integer"
-                },
-                {
-                    "description": "the storage type for this service offering",
-                    "name": "storagetype",
+                    "name": "keypair",
+                    "description": "ssh key-pair",
                     "type": "string"
                 },
                 {
-                    "description": "the number of CPU",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "data transfer rate in megabits per second allowed.",
-                    "name": "networkrate",
-                    "type": "integer"
-                },
-                {
-                    "description": "the clock rate CPU speed in Mhz",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the id of the service offering",
-                    "name": "id",
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
                     "type": "string"
                 },
                 {
-                    "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk",
-                    "name": "isvolatile",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the host tag for the service offering",
-                    "name": "hosttags",
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "type": "string"
                 },
                 {
-                    "description": "true if disk offering uses custom iops, false otherwise",
-                    "name": "iscustomizediops",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the service offering",
-                    "name": "name",
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
-                    "name": "provisioningtype",
-                    "type": "string"
-                },
-                {
-                    "description": "io requests read rate of the service offering",
-                    "name": "diskIopsReadRate",
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "restrict the CPU usage to committed service offering",
-                    "name": "limitcpuuse",
-                    "type": "boolean"
-                },
-                {
-                    "description": "is true if the offering is customized",
-                    "name": "iscustomized",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the min iops of the disk offering",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "the max iops of the disk offering",
-                    "name": "maxiops",
-                    "type": "long"
-                },
-                {
-                    "description": "is this a the systemvm type for system vm offering",
-                    "name": "systemvmtype",
-                    "type": "string"
-                },
-                {
-                    "description": "additional key/value details tied with this service offering",
-                    "name": "serviceofferingdetails",
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
                     "type": "map"
                 },
                 {
-                    "description": "the tags for the service offering",
-                    "name": "tags",
+                    "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "io requests write rate of the service offering",
-                    "name": "diskIopsWriteRate",
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the ha support in the service offering",
-                    "name": "offerha",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "updateEgressFirewallRule",
+            "description": "Updates egress firewall rule ",
+            "since": "4.4",
+            "isasync": true,
+            "related": "",
+            "params": [
+                {
+                    "name": "customid",
+                    "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "an optional field, whether to the display the rule to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "4.4"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the egress firewall rule",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": ""
+                }
+            ],
+            "response": [
+                {
+                    "name": "icmpcode",
+                    "description": "error code for this icmp message",
+                    "type": "integer"
+                },
+                {
+                    "name": "destcidrlist",
+                    "description": "the cidr list to forward traffic to",
+                    "type": "string"
+                },
+                {
+                    "name": "icmptype",
+                    "description": "type of the icmp message being sent",
+                    "type": "integer"
+                },
+                {
+                    "name": "fordisplay",
+                    "description": "is rule for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "the date this service offering was created",
+                    "name": "id",
+                    "description": "the ID of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "startport",
+                    "description": "the starting port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "cidrlist",
+                    "description": "the cidr list to forward traffic from",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddressid",
+                    "description": "the public ip address id for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "networkid",
+                    "description": "the network id of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "ipaddress",
+                    "description": "the public ip address for the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "protocol",
+                    "description": "the protocol of the firewall rule",
+                    "type": "string"
+                },
+                {
+                    "name": "endport",
+                    "description": "the ending port of firewall rule's port range",
+                    "type": "integer"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the rule",
+                    "type": "string"
+                },
+                {
+                    "name": "tags",
+                    "description": "the list of resource tags associated with the rule",
+                    "type": "list",
+                    "response": [
+                        {
+                            "name": "customer",
+                            "description": "customer associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "tag value",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name where tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "key",
+                            "description": "tag key name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourcetype",
+                            "description": "resource type",
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceid",
+                            "description": "id of the resource",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account associated with the tag",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id the tag belongs to",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the ID of the domain associated with the tag",
+                            "type": "string"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "name": "listOsCategories",
+            "description": "Lists all supported OS categories for this cloud.",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "list Os category by id",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listOsCategories"
+                },
+                {
+                    "name": "name",
+                    "description": "list os category by name",
+                    "type": "string",
+                    "length": 255,
+                    "required": false,
+                    "since": "3.0.1"
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "name",
+                    "description": "the name of the OS category",
+                    "type": "string"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the OS category",
+                    "type": "string"
+                }
+            ]
+        },
+        {
+            "name": "listServiceOfferings",
+            "description": "Lists all available service offerings.",
+            "isasync": false,
+            "related": "updateServiceOffering",
+            "params": [
+                {
+                    "name": "issystem",
+                    "description": "is this a system vm offering",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "listall",
+                    "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "name of the service offering",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "isrecursive",
+                    "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "virtualmachineid",
+                    "description": "the ID of the virtual machine. Pass this in if you want to see the available service offering that a virtual machine can be changed to.",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateVMAffinityGroup,startVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "ID of the service offering",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "updateServiceOffering,listServiceOfferings"
+                },
+                {
+                    "name": "domainid",
+                    "description": "list only resources belonging to the domain specified",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listDomains"
+                },
+                {
+                    "name": "systemvmtype",
+                    "description": "the system VM type. Possible types are \"consoleproxy\", \"secondarystoragevm\" or \"domainrouter\".",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "displaytext",
+                    "description": "an alternate display text of the service offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
+                    "type": "string"
+                },
+                {
+                    "name": "miniops",
+                    "description": "the min iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "iscustomizediops",
+                    "description": "true if disk offering uses custom iops, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "offerha",
+                    "description": "the ha support in the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "tags",
+                    "description": "the tags for the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "limitcpuuse",
+                    "description": "restrict the CPU usage to committed service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "hosttags",
+                    "description": "the host tag for the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "iscustomized",
+                    "description": "is true if the offering is customized",
+                    "type": "boolean"
+                },
+                {
+                    "name": "defaultuse",
+                    "description": "is this a  default system vm offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the domain id of the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "systemvmtype",
+                    "description": "is this a the systemvm type for system vm offering",
+                    "type": "string"
+                },
+                {
+                    "name": "maxiops",
+                    "description": "the max iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the id of the service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "isvolatile",
+                    "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk",
+                    "type": "boolean"
+                },
+                {
+                    "name": "deploymentplanner",
+                    "description": "deployment strategy used to deploy VM.",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingdetails",
+                    "description": "additional key/value details tied with this service offering",
+                    "type": "map"
+                },
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory in MB",
+                    "type": "integer"
+                },
+                {
+                    "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
+                    "type": "integer"
+                },
+                {
+                    "name": "issystem",
+                    "description": "is this a system vm offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the clock rate CPU speed in Mhz",
+                    "type": "integer"
+                },
+                {
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed.",
+                    "type": "integer"
+                },
+                {
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "the storage type for this service offering",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date this service offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "Domain name for the offering",
+                    "name": "cpunumber",
+                    "description": "the number of CPU",
+                    "type": "integer"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the service offering",
+                    "type": "string"
+                },
+                {
                     "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "bytes write rate of the service offering",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
-                    "name": "hypervisorsnapshotreserve",
-                    "type": "integer"
-                },
-                {
-                    "description": "is this a system vm offering",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "is this a  default system vm offering",
-                    "name": "defaultuse",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the domain id of the service offering",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "deployment strategy used to deploy VM.",
-                    "name": "deploymentplanner",
+                    "description": "Domain name for the offering",
                     "type": "string"
                 }
             ]
         },
         {
-            "description": "Lists affinity group types available",
-            "isasync": false,
-            "name": "listAffinityGroupTypes",
-            "params": [
-                {
-                    "description": "List by keyword",
-                    "length": 255,
-                    "name": "keyword",
-                    "required": false,
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                }
-            ],
-            "related": "",
-            "response": [
-                {
-                    "description": "the type of the affinity group",
-                    "name": "type",
-                    "type": "string"
-                }
-            ]
-        },
-        {
+            "name": "removeFromGlobalLoadBalancerRule",
             "description": "Removes a load balancer rule association with global load balancer rule",
             "isasync": true,
-            "name": "removeFromGlobalLoadBalancerRule",
             "params": [
                 {
-                    "description": "the list load balancer rules that will be assigned to gloabal load balancer rule",
+                    "name": "id",
+                    "description": "The ID of the load balancer rule",
+                    "type": "uuid",
                     "length": 255,
-                    "name": "loadbalancerrulelist",
-                    "related": "",
                     "required": true,
-                    "type": "list"
+                    "related": ""
                 },
                 {
-                    "description": "The ID of the load balancer rule",
+                    "name": "loadbalancerrulelist",
+                    "description": "the list load balancer rules that will be assigned to gloabal load balancer rule",
+                    "type": "list",
                     "length": 255,
-                    "name": "id",
-                    "related": "",
                     "required": true,
-                    "type": "uuid"
+                    "related": ""
                 }
             ],
             "response": [
                 {
-                    "description": "true if operation is executed successfully",
-                    "name": "success",
-                    "type": "boolean"
+                    "name": "displaytext",
+                    "description": "any text associated with the success or failure",
+                    "type": "string"
                 },
                 {
-                    "description": "any text associated with the success or failure",
-                    "name": "displaytext",
+                    "name": "success",
+                    "description": "true if operation is executed successfully",
+                    "type": "boolean"
+                }
+            ]
+        },
+        {
+            "name": "listAffinityGroupTypes",
+            "description": "Lists affinity group types available",
+            "isasync": false,
+            "related": "",
+            "params": [
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "type",
+                    "description": "the type of the affinity group",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "listCapacity",
             "description": "Lists all the system wide capacities.",
             "isasync": false,
-            "name": "listCapacity",
+            "related": "",
             "params": [
                 {
-                    "description": "lists capacity by the Zone ID",
-                    "length": 255,
-                    "name": "zoneid",
-                    "related": "listZones",
-                    "required": false,
-                    "type": "uuid"
-                },
-                {
-                    "description": "lists capacity by type* CAPACITY_TYPE_MEMORY = 0* CAPACITY_TYPE_CPU = 1* CAPACITY_TYPE_STORAGE = 2* CAPACITY_TYPE_STORAGE_ALLOCATED = 3* CAPACITY_TYPE_VIRTUAL_NETWORK_PUBLIC_IP = 4* CAPACITY_TYPE_PRIVATE_IP = 5* CAPACITY_TYPE_SECONDARY_STORAGE = 6* CAPACITY_TYPE_VLAN = 7* CAPACITY_TYPE_DIRECT_ATTACHED_PUBLIC_IP = 8* CAPACITY_TYPE_LOCAL_STORAGE = 9.",
-                    "length": 255,
-                    "name": "type",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "Sort the results. Available values: Usage",
-                    "length": 255,
-                    "name": "sortby",
-                    "required": false,
-                    "since": "3.0.0",
-                    "type": "string"
-                },
-                {
-                    "description": "",
-                    "length": 255,
-                    "name": "page",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "recalculate capacities and fetch the latest",
-                    "length": 255,
-                    "name": "fetchlatest",
-                    "required": false,
-                    "since": "3.0.0",
-                    "type": "boolean"
-                },
-                {
-                    "description": "lists capacity by the Pod ID",
-                    "length": 255,
                     "name": "podid",
-                    "related": "",
+                    "description": "lists capacity by the Pod ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "",
-                    "length": 255,
-                    "name": "pagesize",
-                    "required": false,
-                    "type": "integer"
-                },
-                {
-                    "description": "lists capacity by the Cluster ID",
-                    "length": 255,
                     "name": "clusterid",
-                    "related": "",
+                    "description": "lists capacity by the Cluster ID",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
                     "since": "3.0.0",
-                    "type": "uuid"
+                    "related": ""
                 },
                 {
-                    "description": "List by keyword",
+                    "name": "sortby",
+                    "description": "Sort the results. Available values: Usage",
+                    "type": "string",
                     "length": 255,
-                    "name": "keyword",
                     "required": false,
-                    "type": "string"
+                    "since": "3.0.0"
+                },
+                {
+                    "name": "fetchlatest",
+                    "description": "recalculate capacities and fetch the latest",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false,
+                    "since": "3.0.0"
+                },
+                {
+                    "name": "page",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "type",
+                    "description": "lists capacity by type* CAPACITY_TYPE_MEMORY = 0* CAPACITY_TYPE_CPU = 1* CAPACITY_TYPE_STORAGE = 2* CAPACITY_TYPE_STORAGE_ALLOCATED = 3* CAPACITY_TYPE_VIRTUAL_NETWORK_PUBLIC_IP = 4* CAPACITY_TYPE_PRIVATE_IP = 5* CAPACITY_TYPE_SECONDARY_STORAGE = 6* CAPACITY_TYPE_VLAN = 7* CAPACITY_TYPE_DIRECT_ATTACHED_PUBLIC_IP = 8* CAPACITY_TYPE_LOCAL_STORAGE = 9* CAPACITY_TYPE_GPU = 19* CAPACITY_TYPE_CPU_CORE = 90.",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "pagesize",
+                    "description": "",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "keyword",
+                    "description": "List by keyword",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "zoneid",
+                    "description": "lists capacity by the Zone ID",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": false,
+                    "related": "listZones"
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the Cluster ID",
                     "name": "clusterid",
+                    "description": "the Cluster ID",
                     "type": "string"
                 },
                 {
-                    "description": "the total capacity available",
-                    "name": "capacitytotal",
-                    "type": "long"
-                },
-                {
-                    "description": "the Pod ID",
-                    "name": "podid",
+                    "name": "clustername",
+                    "description": "the Cluster name",
                     "type": "string"
                 },
                 {
-                    "description": "the Pod name",
-                    "name": "podname",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone name",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "the capacity currently in use",
                     "name": "capacityused",
+                    "description": "the capacity currently in use",
                     "type": "long"
                 },
                 {
-                    "description": "the capacity type",
+                    "name": "podname",
+                    "description": "the Pod name",
+                    "type": "string"
+                },
+                {
+                    "name": "capacityallocated",
+                    "description": "the capacity currently in allocated",
+                    "type": "long"
+                },
+                {
                     "name": "type",
+                    "description": "the capacity type",
                     "type": "short"
                 },
                 {
-                    "description": "the Cluster name",
-                    "name": "clustername",
-                    "type": "string"
-                },
-                {
-                    "description": "the Zone ID",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the percentage of capacity currently in use",
                     "name": "percentused",
+                    "description": "the percentage of capacity currently in use",
                     "type": "string"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the Zone ID",
+                    "type": "string"
+                },
+                {
+                    "name": "podid",
+                    "description": "the Pod ID",
+                    "type": "string"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the Zone name",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the capacity name",
+                    "type": "string"
+                },
+                {
+                    "name": "capacitytotal",
+                    "description": "the total capacity available",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "startVirtualMachine",
             "description": "Starts a virtual machine.",
             "isasync": true,
-            "name": "startVirtualMachine",
+            "related": "updateVMAffinityGroup,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "Deployment planner to use for vm allocation. Available to ROOT admin only",
-                    "length": 255,
                     "name": "deploymentplanner",
+                    "description": "Deployment planner to use for vm allocation. Available to ROOT admin only",
+                    "type": "string",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "string"
+                    "since": "4.4"
                 },
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,startVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "destination Host ID to deploy the VM to - parameter available for root admin only",
-                    "length": 255,
                     "name": "hostid",
-                    "related": "",
+                    "description": "destination Host ID to deploy the VM to - parameter available for root admin only",
+                    "type": "uuid",
+                    "length": 255,
                     "required": false,
                     "since": "3.0.1",
-                    "type": "uuid"
+                    "related": ""
+                },
+                {
+                    "name": "id",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVMAffinityGroup,startVirtualMachine,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
                 }
             ],
-            "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
             "response": [
                 {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
-                    "name": "zonename",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
-                    "name": "forvirtualnetwork",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
                     "type": "string"
                 },
                 {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the virtual machine",
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
                     "name": "id",
+                    "description": "the ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
+                    "type": "long"
+                },
+                {
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        }
+                    ]
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
                     "type": "integer"
                 },
                 {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
                     "type": "long"
                 },
                 {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "state",
+                    "description": "the state of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
-                    "type": "string"
-                },
-                {
-                    "description": "the date when this virtual machine was created",
-                    "name": "created",
-                    "type": "date"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
-                    "type": "string"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
                     "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
                     "type": "long"
                 },
                 {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        }
+                    ]
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the ID of the host for the virtual machine",
                     "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
+                    "type": "string"
+                },
+                {
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
-                    "response": [
-                        {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the affinity group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the affinity group",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the affinity group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
-                            "type": "list"
-                        },
-                        {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
-                    "type": "string"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
-                    "type": "string"
-                },
-                {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
                     "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
                     "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
+                    "type": "boolean"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "created",
+                    "description": "the date when this virtual machine was created",
+                    "type": "date"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
                 }
             ]
         },
         {
+            "name": "updateServiceOffering",
             "description": "Updates a service offering.",
             "isasync": false,
-            "name": "updateServiceOffering",
+            "related": "",
             "params": [
                 {
-                    "description": "sort key of the service offering, integer",
+                    "name": "id",
+                    "description": "the ID of the service offering to be updated",
+                    "type": "uuid",
                     "length": 255,
+                    "required": true,
+                    "related": "updateServiceOffering"
+                },
+                {
+                    "name": "displaytext",
+                    "description": "the display text of the service offering to be updated",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the service offering to be updated",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
                     "name": "sortkey",
-                    "required": false,
+                    "description": "sort key of the service offering, integer",
+                    "type": "integer",
+                    "length": 255,
+                    "required": false
+                }
+            ],
+            "response": [
+                {
+                    "name": "diskIopsReadRate",
+                    "description": "io requests read rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "miniops",
+                    "description": "the min iops of the disk offering",
+                    "type": "long"
+                },
+                {
+                    "name": "storagetype",
+                    "description": "the storage type for this service offering",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "Domain name for the offering",
+                    "type": "string"
+                },
+                {
+                    "name": "memory",
+                    "description": "the memory in MB",
                     "type": "integer"
                 },
                 {
-                    "description": "the name of the service offering to be updated",
-                    "length": 255,
-                    "name": "name",
-                    "required": false,
-                    "type": "string"
+                    "name": "maxiops",
+                    "description": "the max iops of the disk offering",
+                    "type": "long"
                 },
                 {
-                    "description": "the display text of the service offering to be updated",
-                    "length": 255,
-                    "name": "displaytext",
-                    "required": false,
-                    "type": "string"
+                    "name": "diskBytesReadRate",
+                    "description": "bytes read rate of the service offering",
+                    "type": "long"
                 },
                 {
-                    "description": "the ID of the service offering to be updated",
-                    "length": 255,
-                    "name": "id",
-                    "related": "updateServiceOffering",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "",
-            "response": [
+                    "name": "diskIopsWriteRate",
+                    "description": "io requests write rate of the service offering",
+                    "type": "long"
+                },
                 {
-                    "description": "the date this service offering was created",
                     "name": "created",
+                    "description": "the date this service offering was created",
                     "type": "date"
                 },
                 {
-                    "description": "Domain name for the offering",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "is true if the offering is customized",
-                    "name": "iscustomized",
+                    "name": "offerha",
+                    "description": "the ha support in the service offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "the min iops of the disk offering",
-                    "name": "miniops",
-                    "type": "long"
-                },
-                {
-                    "description": "an alternate display text of the service offering.",
-                    "name": "displaytext",
+                    "name": "domainid",
+                    "description": "the domain id of the service offering",
                     "type": "string"
                 },
                 {
-                    "description": "restrict the CPU usage to committed service offering",
-                    "name": "limitcpuuse",
-                    "type": "boolean"
-                },
-                {
-                    "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk",
-                    "name": "isvolatile",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the tags for the service offering",
-                    "name": "tags",
-                    "type": "string"
-                },
-                {
-                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
                     "name": "provisioningtype",
+                    "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.",
                     "type": "string"
                 },
                 {
-                    "description": "bytes write rate of the service offering",
-                    "name": "diskBytesWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the service offering",
-                    "name": "name",
+                    "name": "tags",
+                    "description": "the tags for the service offering",
                     "type": "string"
                 },
                 {
-                    "description": "the number of CPU",
-                    "name": "cpunumber",
-                    "type": "integer"
+                    "name": "hosttags",
+                    "description": "the host tag for the service offering",
+                    "type": "string"
                 },
                 {
-                    "description": "the memory in MB",
-                    "name": "memory",
-                    "type": "integer"
+                    "name": "id",
+                    "description": "the id of the service offering",
+                    "type": "string"
                 },
                 {
-                    "description": "the max iops of the disk offering",
-                    "name": "maxiops",
-                    "type": "long"
+                    "name": "systemvmtype",
+                    "description": "is this a the systemvm type for system vm offering",
+                    "type": "string"
                 },
                 {
-                    "description": "data transfer rate in megabits per second allowed.",
-                    "name": "networkrate",
-                    "type": "integer"
+                    "name": "deploymentplanner",
+                    "description": "deployment strategy used to deploy VM.",
+                    "type": "string"
                 },
                 {
-                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
-                    "name": "hypervisorsnapshotreserve",
-                    "type": "integer"
-                },
-                {
-                    "description": "io requests write rate of the service offering",
-                    "name": "diskIopsWriteRate",
-                    "type": "long"
-                },
-                {
-                    "description": "is this a system vm offering",
-                    "name": "issystem",
-                    "type": "boolean"
-                },
-                {
-                    "description": "bytes read rate of the service offering",
-                    "name": "diskBytesReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "io requests read rate of the service offering",
-                    "name": "diskIopsReadRate",
-                    "type": "long"
-                },
-                {
-                    "description": "additional key/value details tied with this service offering",
                     "name": "serviceofferingdetails",
+                    "description": "additional key/value details tied with this service offering",
                     "type": "map"
                 },
                 {
-                    "description": "deployment strategy used to deploy VM.",
-                    "name": "deploymentplanner",
-                    "type": "string"
-                },
-                {
-                    "description": "is this a the systemvm type for system vm offering",
-                    "name": "systemvmtype",
-                    "type": "string"
-                },
-                {
-                    "description": "the id of the service offering",
-                    "name": "id",
-                    "type": "string"
-                },
-                {
-                    "description": "true if disk offering uses custom iops, false otherwise",
-                    "name": "iscustomizediops",
+                    "name": "defaultuse",
+                    "description": "is this a  default system vm offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "the host tag for the service offering",
-                    "name": "hosttags",
-                    "type": "string"
-                },
-                {
-                    "description": "the clock rate CPU speed in Mhz",
-                    "name": "cpuspeed",
+                    "name": "hypervisorsnapshotreserve",
+                    "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)",
                     "type": "integer"
                 },
                 {
-                    "description": "the ha support in the service offering",
-                    "name": "offerha",
+                    "name": "isvolatile",
+                    "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk",
                     "type": "boolean"
                 },
                 {
-                    "description": "is this a  default system vm offering",
-                    "name": "defaultuse",
+                    "name": "displaytext",
+                    "description": "an alternate display text of the service offering.",
+                    "type": "string"
+                },
+                {
+                    "name": "diskBytesWriteRate",
+                    "description": "bytes write rate of the service offering",
+                    "type": "long"
+                },
+                {
+                    "name": "issystem",
+                    "description": "is this a system vm offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "the domain id of the service offering",
-                    "name": "domainid",
+                    "name": "cpuspeed",
+                    "description": "the clock rate CPU speed in Mhz",
+                    "type": "integer"
+                },
+                {
+                    "name": "iscustomizediops",
+                    "description": "true if disk offering uses custom iops, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the service offering",
                     "type": "string"
                 },
                 {
-                    "description": "the storage type for this service offering",
-                    "name": "storagetype",
-                    "type": "string"
+                    "name": "networkrate",
+                    "description": "data transfer rate in megabits per second allowed.",
+                    "type": "integer"
+                },
+                {
+                    "name": "iscustomized",
+                    "description": "is true if the offering is customized",
+                    "type": "boolean"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of CPU",
+                    "type": "integer"
+                },
+                {
+                    "name": "limitcpuuse",
+                    "description": "restrict the CPU usage to committed service offering",
+                    "type": "boolean"
                 }
             ]
         },
         {
+            "name": "stopVirtualMachine",
             "description": "Stops a virtual machine.",
             "isasync": true,
-            "name": "stopVirtualMachine",
+            "related": "updateVMAffinityGroup,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,deployVirtualMachine,stopVirtualMachine",
             "params": [
                 {
-                    "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted).  The caller knows the VM is stopped.",
-                    "length": 255,
                     "name": "forced",
-                    "required": false,
+                    "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted).  The caller knows the VM is stopped.",
+                    "type": "boolean",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "id",
+                    "description": "The ID of the virtual machine",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVMAffinityGroup,removeNicFromVirtualMachine,addNicToVirtualMachine,destroyVirtualMachine,startVirtualMachine,listVirtualMachines,restoreVirtualMachine,changeServiceForVirtualMachine,resetSSHKeyForVirtualMachine,updateDefaultNicForVirtualMachine,attachIso,updateVirtualMachine,resetPasswordForVirtualMachine,detachIso,revertToVMSnapshot,rebootVirtualMachine,stopVirtualMachine,deployVirtualMachine,stopVirtualMachine"
+                }
+            ],
+            "response": [
+                {
+                    "name": "diskofferingname",
+                    "description": "the name of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "memoryintfreekbs",
+                    "description": "the internal memory thats free in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "securitygroup",
+                    "description": "list of security groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "id",
+                            "description": "the ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineids",
+                            "description": "the list of virtualmachine ids associated with this securitygroup",
+                            "type": "set"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "egressrule",
+                            "description": "the list of egress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "tags",
+                            "description": "the list of resource tags associated with the rule",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "projectid",
+                                    "description": "the project id the tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "customer",
+                                    "description": "customer associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "project",
+                                    "description": "the project name where tag belongs to",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "the account associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domain",
+                                    "description": "the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourceid",
+                                    "description": "id of the resource",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "key",
+                                    "description": "tag key name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "resourcetype",
+                                    "description": "resource type",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "domainid",
+                                    "description": "the ID of the domain associated with the tag",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "value",
+                                    "description": "tag value",
+                                    "type": "string"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the security group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project id of the group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ingressrule",
+                            "description": "the list of ingress rules associated with the security group",
+                            "type": "set",
+                            "response": [
+                                {
+                                    "name": "icmptype",
+                                    "description": "the type of the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "tags",
+                                    "description": "the list of resource tags associated with the rule",
+                                    "type": "set",
+                                    "response": [
+                                        {
+                                            "name": "account",
+                                            "description": "the account associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domain",
+                                            "description": "the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "projectid",
+                                            "description": "the project id the tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourcetype",
+                                            "description": "resource type",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "project",
+                                            "description": "the project name where tag belongs to",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "value",
+                                            "description": "tag value",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "customer",
+                                            "description": "customer associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "key",
+                                            "description": "tag key name",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "domainid",
+                                            "description": "the ID of the domain associated with the tag",
+                                            "type": "string"
+                                        },
+                                        {
+                                            "name": "resourceid",
+                                            "description": "id of the resource",
+                                            "type": "string"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "name": "protocol",
+                                    "description": "the protocol of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "cidr",
+                                    "description": "the CIDR notation for the base IP address of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "icmpcode",
+                                    "description": "the code for the ICMP message response",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "securitygroupname",
+                                    "description": "security group name",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "account",
+                                    "description": "account owning the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "ruleid",
+                                    "description": "the id of the security group rule",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "startport",
+                                    "description": "the starting IP of the security group rule",
+                                    "type": "integer"
+                                },
+                                {
+                                    "name": "endport",
+                                    "description": "the ending IP of the security group rule ",
+                                    "type": "integer"
+                                }
+                            ]
+                        },
+                        {
+                            "name": "virtualmachinecount",
+                            "description": "the number of virtualmachines associated with this securitygroup",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "ostypeid",
+                    "description": "OS type id of the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "instancename",
+                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
+                    "type": "string"
+                },
+                {
+                    "name": "diskiowrite",
+                    "description": "the write (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "serviceofferingid",
+                    "description": "the ID of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "isoname",
+                    "description": "the name of the ISO attached to the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "name",
+                    "description": "the name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "serviceofferingname",
+                    "description": "the name of the service offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "templatedisplaytext",
+                    "description": " an alternate display text of the template for the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "passwordenabled",
+                    "description": "true if the password rest feature is enabled, false otherwise",
                     "type": "boolean"
                 },
                 {
-                    "description": "The ID of the virtual machine",
-                    "length": 255,
-                    "name": "id",
-                    "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,stopVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-                    "required": true,
-                    "type": "uuid"
-                }
-            ],
-            "related": "resetSSHKeyForVirtualMachine,updateVMAffinityGroup,rebootVirtualMachine,restoreVirtualMachine,detachIso,deployVirtualMachine,updateVirtualMachine,revertToVMSnapshot,resetPasswordForVirtualMachine,updateDefaultNicForVirtualMachine,startVirtualMachine,attachIso,listVirtualMachines,addNicToVirtualMachine,stopVirtualMachine,destroyVirtualMachine,removeNicFromVirtualMachine,changeServiceForVirtualMachine",
-            "response": [
-                {
-                    "description": "the speed of each cpu",
-                    "name": "cpuspeed",
-                    "type": "integer"
+                    "name": "publicipid",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
                 },
                 {
-                    "description": "the write (io) of disk on the vm",
-                    "name": "diskiowrite",
+                    "name": "networkkbswrite",
+                    "description": "the outgoing network traffic on the host",
                     "type": "long"
                 },
                 {
-                    "description": " an alternate display text of the template for the virtual machine",
-                    "name": "templatedisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the amount of the vm's CPU currently used",
-                    "name": "cpuused",
-                    "type": "string"
-                },
-                {
-                    "description": "device ID of the root volume",
-                    "name": "rootdeviceid",
-                    "type": "long"
-                },
-                {
-                    "description": "the name of the domain in which the virtual machine exists",
-                    "name": "domain",
-                    "type": "string"
-                },
-                {
-                    "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
-                    "name": "instancename",
-                    "type": "string"
-                },
-                {
-                    "description": "the state of the virtual machine",
-                    "name": "state",
-                    "type": "string"
-                },
-                {
-                    "description": "the vgpu type used by the virtual machine",
-                    "name": "vgpu",
-                    "type": "string"
-                },
-                {
-                    "description": "list of affinity groups associated with the virtual machine",
-                    "name": "affinitygroup",
+                    "name": "nic",
+                    "description": "the list of nics associated with vm",
+                    "type": "set",
                     "response": [
                         {
-                            "description": "the description of the affinity group",
-                            "name": "description",
+                            "name": "ip6cidr",
+                            "description": "the cidr of IPv6 network",
                             "type": "string"
                         },
                         {
-                            "description": "the account owning the affinity group",
-                            "name": "account",
+                            "name": "ip6address",
+                            "description": "the IPv6 address of network",
                             "type": "string"
                         },
                         {
-                            "description": "the project name of the affinity group",
-                            "name": "project",
+                            "name": "networkid",
+                            "description": "the ID of the corresponding network",
                             "type": "string"
                         },
                         {
-                            "description": "the domain ID of the affinity group",
-                            "name": "domainid",
+                            "name": "deviceid",
+                            "description": "device id for the network when plugged into the virtual machine",
                             "type": "string"
                         },
                         {
-                            "description": "the name of the affinity group",
-                            "name": "name",
+                            "name": "ipaddress",
+                            "description": "the ip address of the nic",
                             "type": "string"
                         },
                         {
-                            "description": "the domain name of the affinity group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project ID of the affinity group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "virtual machine IDs associated with this affinity group",
-                            "name": "virtualmachineIds",
+                            "name": "secondaryip",
+                            "description": "the Secondary ipv4 addr of nic",
                             "type": "list"
                         },
                         {
-                            "description": "the type of the affinity group",
-                            "name": "type",
+                            "name": "nsxlogicalswitchport",
+                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
                             "type": "string"
                         },
                         {
-                            "description": "the ID of the affinity group",
-                            "name": "id",
+                            "name": "extradhcpoption",
+                            "description": "the extra dhcp options on the nic",
+                            "type": "list"
+                        },
+                        {
+                            "name": "networkname",
+                            "description": "the name of the corresponding network",
                             "type": "string"
+                        },
+                        {
+                            "name": "broadcasturi",
+                            "description": "the broadcast uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineid",
+                            "description": "Id of the vm to which the nic belongs",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isolationuri",
+                            "description": "the isolation uri of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "gateway",
+                            "description": "the gateway of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "netmask",
+                            "description": "the netmask of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "traffictype",
+                            "description": "the traffic type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "macaddress",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "ip6gateway",
+                            "description": "the gateway of IPv6 network",
+                            "type": "string"
+                        },
+                        {
+                            "name": "nsxlogicalswitch",
+                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
+                            "type": "string"
+                        },
+                        {
+                            "name": "type",
+                            "description": "the type of the nic",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isdefault",
+                            "description": "true if nic is default, false otherwise",
+                            "type": "boolean"
                         }
-                    ],
-                    "type": "set"
+                    ]
                 },
                 {
-                    "description": "the ID of the host for the virtual machine",
-                    "name": "hostid",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicip",
-                    "type": "string"
-                },
-                {
-                    "description": "true if the password rest feature is enabled, false otherwise",
-                    "name": "passwordenabled",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the name of the availability zone for the virtual machine",
                     "name": "zonename",
+                    "description": "the name of the availability zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "an optional field whether to the display the vm to the end user or not.",
-                    "name": "displayvm",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the write (bytes) of disk on the vm",
-                    "name": "diskkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "Vm details in key/value pairs.",
-                    "name": "details",
-                    "type": "map"
-                },
-                {
-                    "description": "the user's ID who deployed the virtual machine",
-                    "name": "userid",
+                    "name": "hostname",
+                    "description": "the name of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the disk offering of the virtual machine",
-                    "name": "diskofferingname",
+                    "name": "hostid",
+                    "description": "the ID of the host for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "OS type id of the vm",
-                    "name": "ostypeid",
-                    "type": "long"
-                },
-                {
-                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
-                    "name": "templateid",
-                    "type": "string"
-                },
-                {
-                    "description": "the memory allocated for the virtual machine",
-                    "name": "memory",
+                    "name": "cpuspeed",
+                    "description": "the speed of each cpu",
                     "type": "integer"
                 },
                 {
-                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
-                    "name": "displayname",
+                    "name": "isodisplaytext",
+                    "description": "an alternate display text of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the service offering of the virtual machine",
-                    "name": "serviceofferingname",
-                    "type": "string"
-                },
-                {
-                    "description": "public IP address id associated with vm via Static nat rule",
-                    "name": "publicipid",
-                    "type": "string"
-                },
-                {
-                    "description": "true if high-availability is enabled, false otherwise",
-                    "name": "haenable",
-                    "type": "boolean"
-                },
-                {
-                    "description": "the ID of the ISO attached to the virtual machine",
-                    "name": "isoid",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the service offering of the virtual machine",
-                    "name": "serviceofferingid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the virtual machine",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "description": "list of security groups associated with the virtual machine",
-                    "name": "securitygroup",
-                    "response": [
-                        {
-                            "description": "the domain ID of the security group",
-                            "name": "domainid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of ingress rules associated with the security group",
-                            "name": "ingressrule",
-                            "response": [
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the project id of the group",
-                            "name": "projectid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the list of resource tags associated with the rule",
-                            "name": "tags",
-                            "response": [
-                                {
-                                    "description": "resource type",
-                                    "name": "resourcetype",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "customer associated with the tag",
-                                    "name": "customer",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag value",
-                                    "name": "value",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the domain associated with the tag",
-                                    "name": "domain",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the account associated with the tag",
-                                    "name": "account",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project id the tag belongs to",
-                                    "name": "projectid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "id of the resource",
-                                    "name": "resourceid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the project name where tag belongs to",
-                                    "name": "project",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "tag key name",
-                                    "name": "key",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ID of the domain associated with the tag",
-                                    "name": "domainid",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the list of egress rules associated with the security group",
-                            "name": "egressrule",
-                            "response": [
-                                {
-                                    "description": "the code for the ICMP message response",
-                                    "name": "icmpcode",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the id of the security group rule",
-                                    "name": "ruleid",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "security group name",
-                                    "name": "securitygroupname",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the type of the ICMP message response",
-                                    "name": "icmptype",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the list of resource tags associated with the rule",
-                                    "name": "tags",
-                                    "response": [
-                                        {
-                                            "description": "the domain associated with the tag",
-                                            "name": "domain",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag key name",
-                                            "name": "key",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the account associated with the tag",
-                                            "name": "account",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the ID of the domain associated with the tag",
-                                            "name": "domainid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "id of the resource",
-                                            "name": "resourceid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "customer associated with the tag",
-                                            "name": "customer",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "tag value",
-                                            "name": "value",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "resource type",
-                                            "name": "resourcetype",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project id the tag belongs to",
-                                            "name": "projectid",
-                                            "type": "string"
-                                        },
-                                        {
-                                            "description": "the project name where tag belongs to",
-                                            "name": "project",
-                                            "type": "string"
-                                        }
-                                    ],
-                                    "type": "set"
-                                },
-                                {
-                                    "description": "the CIDR notation for the base IP address of the security group rule",
-                                    "name": "cidr",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the starting IP of the security group rule",
-                                    "name": "startport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "the protocol of the security group rule",
-                                    "name": "protocol",
-                                    "type": "string"
-                                },
-                                {
-                                    "description": "the ending IP of the security group rule ",
-                                    "name": "endport",
-                                    "type": "integer"
-                                },
-                                {
-                                    "description": "account owning the security group rule",
-                                    "name": "account",
-                                    "type": "string"
-                                }
-                            ],
-                            "type": "set"
-                        },
-                        {
-                            "description": "the domain name of the security group",
-                            "name": "domain",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the security group",
-                            "name": "name",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the project name of the group",
-                            "name": "project",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the description of the security group",
-                            "name": "description",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the security group",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the number of virtualmachines associated with this securitygroup",
-                            "name": "virtualmachinecount",
-                            "type": "integer"
-                        },
-                        {
-                            "description": "the list of virtualmachine ids associated with this securitygroup",
-                            "name": "virtualmachineids",
-                            "type": "set"
-                        },
-                        {
-                            "description": "the account owning the security group",
-                            "name": "account",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "the project name of the vm",
-                    "name": "project",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the domain in which the virtual machine exists",
-                    "name": "domainid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the template for the virtual machine",
-                    "name": "templatename",
-                    "type": "string"
-                },
-                {
-                    "description": "the hypervisor on which the template runs",
-                    "name": "hypervisor",
-                    "type": "string"
-                },
-                {
-                    "description": "the password (if exists) of the virtual machine",
-                    "name": "password",
-                    "type": "string"
-                },
-                {
-                    "description": "State of the Service from LB rule",
-                    "name": "servicestate",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the availablility zone for the virtual machine",
-                    "name": "zoneid",
-                    "type": "string"
-                },
-                {
-                    "description": "the name of the ISO attached to the virtual machine",
-                    "name": "isoname",
-                    "type": "string"
-                },
-                {
-                    "description": "the group name of the virtual machine",
-                    "name": "group",
-                    "type": "string"
-                },
-                {
-                    "description": "the virtual network for the service offering",
                     "name": "forvirtualnetwork",
+                    "description": "the virtual network for the service offering",
                     "type": "boolean"
                 },
                 {
-                    "description": "the outgoing network traffic on the host",
-                    "name": "networkkbswrite",
-                    "type": "long"
-                },
-                {
-                    "description": "the internal memory thats free in vm",
-                    "name": "memoryintfreekbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the user's name who deployed the virtual machine",
-                    "name": "username",
+                    "name": "cpuused",
+                    "description": "the amount of the vm's CPU currently used",
                     "type": "string"
                 },
                 {
-                    "description": "the date when this virtual machine was created",
+                    "name": "isdynamicallyscalable",
+                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
+                    "type": "boolean"
+                },
+                {
+                    "name": "networkkbsread",
+                    "description": "the incoming network traffic on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "projectid",
+                    "description": "the project id of the vm",
+                    "type": "string"
+                },
+                {
                     "name": "created",
+                    "description": "the date when this virtual machine was created",
                     "type": "date"
                 },
                 {
-                    "description": "the project id of the vm",
-                    "name": "projectid",
+                    "name": "vgpu",
+                    "description": "the vgpu type used by the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the target memory in vm",
-                    "name": "memorytargetkbs",
-                    "type": "long"
-                },
-                {
-                    "description": "the read (bytes) of disk on the vm",
-                    "name": "diskkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "the group ID of the virtual machine",
-                    "name": "groupid",
+                    "name": "templateid",
+                    "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
                     "type": "string"
                 },
                 {
-                    "description": "the number of cpu this virtual machine is running with",
-                    "name": "cpunumber",
-                    "type": "integer"
-                },
-                {
-                    "description": "the incoming network traffic on the vm",
-                    "name": "networkkbsread",
-                    "type": "long"
-                },
-                {
-                    "description": "an alternate display text of the ISO attached to the virtual machine",
-                    "name": "isodisplaytext",
-                    "type": "string"
-                },
-                {
-                    "description": "the ID of the disk offering of the virtual machine",
-                    "name": "diskofferingid",
+                    "name": "templatename",
+                    "description": "the name of the template for the virtual machine",
                     "type": "string"
                 },
                 {
 
                 },
                 {
-                    "description": "the ID of the virtual machine",
-                    "name": "id",
+                    "name": "zoneid",
+                    "description": "the ID of the availablility zone for the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the account associated with the virtual machine",
-                    "name": "account",
+                    "name": "isoid",
+                    "description": "the ID of the ISO attached to the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the read (io) of disk on the vm",
-                    "name": "diskioread",
-                    "type": "long"
-                },
-                {
-                    "description": "device type of the root volume",
-                    "name": "rootdevicetype",
-                    "type": "string"
-                },
-                {
-                    "description": "ssh key-pair",
-                    "name": "keypair",
-                    "type": "string"
-                },
-                {
-                    "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
-                    "name": "isdynamicallyscalable",
+                    "name": "displayvm",
+                    "description": "an optional field whether to the display the vm to the end user or not.",
                     "type": "boolean"
                 },
                 {
-                    "description": "the memory used by the vm",
-                    "name": "memorykbs",
-                    "type": "long"
+                    "name": "memory",
+                    "description": "the memory allocated for the virtual machine",
+                    "type": "integer"
                 },
                 {
-                    "description": "the list of nics associated with vm",
-                    "name": "nic",
-                    "response": [
-                        {
-                            "description": "the traffic type of the nic",
-                            "name": "traffictype",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the Secondary ipv4 addr of nic",
-                            "name": "secondaryip",
-                            "type": "list"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitch",
-                            "type": "string"
-                        },
-                        {
-                            "description": "device id for the network when plugged into the virtual machine",
-                            "name": "deviceid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "isdefault",
-                            "type": "boolean"
-                        },
-                        {
-                            "description": "the ID of the corresponding network",
-                            "name": "networkid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the name of the corresponding network",
-                            "name": "networkname",
-                            "type": "string"
-                        },
-                        {
-                            "description": "true if nic is default, false otherwise",
-                            "name": "macaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the netmask of the nic",
-                            "name": "netmask",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the vm to which the nic belongs",
-                            "name": "virtualmachineid",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the isolation uri of the nic",
-                            "name": "isolationuri",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of the nic",
-                            "name": "gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ID of the nic",
-                            "name": "id",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the broadcast uri of the nic",
-                            "name": "broadcasturi",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the cidr of IPv6 network",
-                            "name": "ip6cidr",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the gateway of IPv6 network",
-                            "name": "ip6gateway",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the ip address of the nic",
-                            "name": "ipaddress",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the type of the nic",
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise",
-                            "name": "nsxlogicalswitchport",
-                            "type": "string"
-                        },
-                        {
-                            "description": "the IPv6 address of network",
-                            "name": "ip6address",
-                            "type": "string"
-                        }
-                    ],
-                    "type": "set"
-                },
-                {
-                    "description": "Os type ID of the virtual machine",
-                    "name": "guestosid",
+                    "name": "username",
+                    "description": "the user's name who deployed the virtual machine",
                     "type": "string"
                 },
                 {
-                    "description": "the name of the host for the virtual machine",
-                    "name": "hostname",
+                    "name": "displayname",
+                    "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
+                    "type": "string"
+                },
+                {
+                    "name": "keypair",
+                    "description": "ssh key-pair",
+                    "type": "string"
+                },
+                {
+                    "name": "publicip",
+                    "description": "public IP address id associated with vm via Static nat rule",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbswrite",
+                    "description": "the write (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorykbs",
+                    "description": "the memory used by the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "id",
+                    "description": "the ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskkbsread",
+                    "description": "the read (bytes) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "memorytargetkbs",
+                    "description": "the target memory in vm",
+                    "type": "long"
+                },
+                {
+                    "name": "details",
+                    "description": "Vm details in key/value pairs.",
+                    "type": "map"
+                },
+                {
+                    "name": "guestosid",
+                    "description": "Os type ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "hypervisor",
+                    "description": "the hypervisor on which the template runs",
+                    "type": "string"
+                },
+                {
+                    "name": "group",
+                    "description": "the group name of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "userid",
+                    "description": "the user's ID who deployed the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domain",
+                    "description": "the name of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdevicetype",
+                    "description": "device type of the root volume",
+                    "type": "string"
+                },
+                {
+                    "name": "account",
+                    "description": "the account associated with the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "state",
+                    "description": "the state of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "domainid",
+                    "description": "the ID of the domain in which the virtual machine exists",
+                    "type": "string"
+                },
+                {
+                    "name": "project",
+                    "description": "the project name of the vm",
+                    "type": "string"
+                },
+                {
+                    "name": "rootdeviceid",
+                    "description": "device ID of the root volume",
+                    "type": "long"
+                },
+                {
+                    "name": "servicestate",
+                    "description": "State of the Service from LB rule",
+                    "type": "string"
+                },
+                {
+                    "name": "affinitygroup",
+                    "description": "list of affinity groups associated with the virtual machine",
+                    "type": "set",
+                    "response": [
+                        {
+                            "name": "type",
+                            "description": "the type of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "account",
+                            "description": "the account owning the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "id",
+                            "description": "the ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "projectid",
+                            "description": "the project ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "virtualmachineIds",
+                            "description": "virtual machine IDs associated with this affinity group",
+                            "type": "list"
+                        },
+                        {
+                            "name": "domainid",
+                            "description": "the domain ID of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "domain",
+                            "description": "the domain name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "the name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "project",
+                            "description": "the project name of the affinity group",
+                            "type": "string"
+                        },
+                        {
+                            "name": "description",
+                            "description": "the description of the affinity group",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "haenable",
+                    "description": "true if high-availability is enabled, false otherwise",
+                    "type": "boolean"
+                },
+                {
+                    "name": "diskofferingid",
+                    "description": "the ID of the disk offering of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "groupid",
+                    "description": "the group ID of the virtual machine",
+                    "type": "string"
+                },
+                {
+                    "name": "diskioread",
+                    "description": "the read (io) of disk on the vm",
+                    "type": "long"
+                },
+                {
+                    "name": "cpunumber",
+                    "description": "the number of cpu this virtual machine is running with",
+                    "type": "integer"
+                },
+                {
+                    "name": "password",
+                    "description": "the password (if exists) of the virtual machine",
                     "type": "string"
                 }
             ]
         },
         {
+            "name": "createNetworkACLList",
             "description": "Creates a network ACL for the given VPC",
             "isasync": true,
-            "name": "createNetworkACLList",
+            "related": "",
             "params": [
                 {
-                    "description": "an optional field, whether to the display the list to the end user or not",
-                    "length": 255,
                     "name": "fordisplay",
+                    "description": "an optional field, whether to the display the list to the end user or not",
+                    "type": "boolean",
+                    "length": 255,
                     "required": false,
-                    "since": "4.4",
-                    "type": "boolean"
+                    "since": "4.4"
                 },
                 {
-                    "description": "Name of the network ACL list",
-                    "length": 255,
-                    "name": "name",
-                    "required": true,
-                    "type": "string"
-                },
-                {
-                    "description": "ID of the VPC associated with this network ACL list",
-                    "length": 255,
-                    "name": "vpcid",
-                    "related": "updateVPC,listVPCs,createVPC",
-                    "required": true,
-                    "type": "uuid"
-                },
-                {
-                    "description": "Description of the network ACL list",
-                    "length": 255,
                     "name": "description",
-                    "required": false,
-                    "type": "string"
+                    "description": "Description of the network ACL list",
+                    "type": "string",
+                    "length": 255,
+                    "required": false
+                },
+                {
+                    "name": "vpcid",
+                    "description": "ID of the VPC associated with this network ACL list",
+                    "type": "uuid",
+                    "length": 255,
+                    "required": true,
+                    "related": "updateVPC,createVPC,listVPCs"
+                },
+                {
+                    "name": "name",
+                    "description": "Name of the network ACL list",
+                    "type": "string",
+                    "length": 255,
+                    "required": true
                 }
             ],
-            "related": "",
             "response": [
                 {
-                    "description": "the ID of the ACL",
-                    "name": "id",
+                    "name": "vpcid",
+                    "description": "Id of the VPC this ACL is associated with",
                     "type": "string"
                 },
                 {
-                    "description": "Description of the ACL",
-                    "name": "description",
+                    "name": "name",
+                    "description": "the Name of the ACL",
                     "type": "string"
                 },
                 {
-                    "description": "is ACL for display to the regular user",
                     "name": "fordisplay",
+                    "description": "is ACL for display to the regular user",
                     "type": "boolean"
                 },
                 {
-                    "description": "Id of the VPC this ACL is associated with",
-                    "name": "vpcid",
+                    "name": "description",
+                    "description": "Description of the ACL",
                     "type": "string"
                 },
                 {
-                    "description": "the Name of the ACL",
-                    "name": "name",
+                    "name": "id",
+                    "description": "the ID of the ACL",
                     "type": "string"
                 }
             ]
         }
-    ],
-    "count": 549
+    ]
 }