Fix type of downloaddetails
diff --git a/cloudstack/ISOService.go b/cloudstack/ISOService.go
index e31ac1e..3b0b9d7 100644
--- a/cloudstack/ISOService.go
+++ b/cloudstack/ISOService.go
@@ -356,54 +356,54 @@
 }
 
 type CopyIsoResponse 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *CopyIsoResponse) UnmarshalJSON(b []byte) error {
@@ -1270,54 +1270,54 @@
 }
 
 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *Iso) UnmarshalJSON(b []byte) error {
@@ -1564,54 +1564,54 @@
 }
 
 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *RegisterIsoResponse) UnmarshalJSON(b []byte) error {
@@ -1829,54 +1829,54 @@
 }
 
 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *UpdateIsoResponse) UnmarshalJSON(b []byte) error {
diff --git a/cloudstack/TemplateService.go b/cloudstack/TemplateService.go
index 30198aa..7f1d68d 100644
--- a/cloudstack/TemplateService.go
+++ b/cloudstack/TemplateService.go
@@ -125,54 +125,54 @@
 }
 
 type CopyTemplateResponse 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *CopyTemplateResponse) UnmarshalJSON(b []byte) error {
@@ -441,54 +441,54 @@
 }
 
 type CreateTemplateResponse 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *CreateTemplateResponse) UnmarshalJSON(b []byte) error {
@@ -1430,54 +1430,54 @@
 }
 
 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *Template) UnmarshalJSON(b []byte) error {
@@ -1575,54 +1575,54 @@
 }
 
 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *PrepareTemplateResponse) UnmarshalJSON(b []byte) error {
@@ -1963,54 +1963,54 @@
 }
 
 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *RegisterTemplate) UnmarshalJSON(b []byte) error {
@@ -2238,54 +2238,54 @@
 }
 
 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"`
-	Deployasis            bool              `json:"deployasis"`
-	Deployasisdetails     map[string]string `json:"deployasisdetails"`
-	Details               map[string]string `json:"details"`
-	Directdownload        bool              `json:"directdownload"`
-	Displaytext           string            `json:"displaytext"`
-	Domain                string            `json:"domain"`
-	Domainid              string            `json:"domainid"`
-	Downloaddetails       []string          `json:"downloaddetails"`
-	Format                string            `json:"format"`
-	Hostid                string            `json:"hostid"`
-	Hostname              string            `json:"hostname"`
-	Hypervisor            string            `json:"hypervisor"`
-	Id                    string            `json:"id"`
-	Isdynamicallyscalable bool              `json:"isdynamicallyscalable"`
-	Isextractable         bool              `json:"isextractable"`
-	Isfeatured            bool              `json:"isfeatured"`
-	Ispublic              bool              `json:"ispublic"`
-	Isready               bool              `json:"isready"`
-	JobID                 string            `json:"jobid"`
-	Jobstatus             int               `json:"jobstatus"`
-	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"`
-	Requireshvm           bool              `json:"requireshvm"`
-	Size                  int64             `json:"size"`
-	Sourcetemplateid      string            `json:"sourcetemplateid"`
-	Sshkeyenabled         bool              `json:"sshkeyenabled"`
-	Status                string            `json:"status"`
-	Tags                  []Tags            `json:"tags"`
-	Templatetag           string            `json:"templatetag"`
-	Templatetype          string            `json:"templatetype"`
-	Url                   string            `json:"url"`
-	Zoneid                string            `json:"zoneid"`
-	Zonename              string            `json:"zonename"`
+	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"`
+	Deployasis            bool                `json:"deployasis"`
+	Deployasisdetails     map[string]string   `json:"deployasisdetails"`
+	Details               map[string]string   `json:"details"`
+	Directdownload        bool                `json:"directdownload"`
+	Displaytext           string              `json:"displaytext"`
+	Domain                string              `json:"domain"`
+	Domainid              string              `json:"domainid"`
+	Downloaddetails       []map[string]string `json:"downloaddetails"`
+	Format                string              `json:"format"`
+	Hostid                string              `json:"hostid"`
+	Hostname              string              `json:"hostname"`
+	Hypervisor            string              `json:"hypervisor"`
+	Id                    string              `json:"id"`
+	Isdynamicallyscalable bool                `json:"isdynamicallyscalable"`
+	Isextractable         bool                `json:"isextractable"`
+	Isfeatured            bool                `json:"isfeatured"`
+	Ispublic              bool                `json:"ispublic"`
+	Isready               bool                `json:"isready"`
+	JobID                 string              `json:"jobid"`
+	Jobstatus             int                 `json:"jobstatus"`
+	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"`
+	Requireshvm           bool                `json:"requireshvm"`
+	Size                  int64               `json:"size"`
+	Sourcetemplateid      string              `json:"sourcetemplateid"`
+	Sshkeyenabled         bool                `json:"sshkeyenabled"`
+	Status                string              `json:"status"`
+	Tags                  []Tags              `json:"tags"`
+	Templatetag           string              `json:"templatetag"`
+	Templatetype          string              `json:"templatetype"`
+	Url                   string              `json:"url"`
+	Zoneid                string              `json:"zoneid"`
+	Zonename              string              `json:"zonename"`
 }
 
 func (r *UpdateTemplateResponse) UnmarshalJSON(b []byte) error {
diff --git a/generate/generate.go b/generate/generate.go
index 0898e20..321470b 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -52,8 +52,8 @@
 var mapRequireList = map[string]map[string]bool{
 	"deployVirtualMachine": map[string]bool{
 		"dhcpoptionsnetworklist": true,
-		"iptonetworklist": true,
-		"nicnetworklist": true,
+		"iptonetworklist":        true,
+		"nicnetworklist":         true,
 	},
 	"updateVirtualMachine": map[string]bool{
 		"dhcpoptionsnetworklist": true,
@@ -1636,6 +1636,9 @@
 	case "float":
 		return "float64"
 	case "list":
+		if pName == "downloaddetails" {
+			return "[]map[string]string"
+		}
 		return "[]string"
 	case "map":
 		if mapRequireList[aName] != nil && mapRequireList[aName][pName] {