Make sure we treat `OutOfBandManagementResponse` correctly (#97)

diff --git a/cloudstack/ExtLoadBalancerService.go b/cloudstack/ExtLoadBalancerService.go
index bdbf2d1..523301a 100644
--- a/cloudstack/ExtLoadBalancerService.go
+++ b/cloudstack/ExtLoadBalancerService.go
@@ -321,33 +321,33 @@
 			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  string `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"`
+	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/cloudstack/FirewallService.go b/cloudstack/FirewallService.go
index 7e0e973..402e15f 100644
--- a/cloudstack/FirewallService.go
+++ b/cloudstack/FirewallService.go
@@ -399,13 +399,13 @@
 }
 
 // Configures a Palo Alto firewall device
-func (s *FirewallService) ConfigurePaloAltoFirewall(p *ConfigurePaloAltoFirewallParams) (*ConfigurePaloAltoFirewallResponse, error) {
+func (s *FirewallService) ConfigurePaloAltoFirewall(p *ConfigurePaloAltoFirewallParams) (*PaloAltoFirewallResponse, error) {
 	resp, err := s.cs.newRequest("configurePaloAltoFirewall", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigurePaloAltoFirewallResponse
+	var r PaloAltoFirewallResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -438,7 +438,7 @@
 	return &r, nil
 }
 
-type ConfigurePaloAltoFirewallResponse struct {
+type PaloAltoFirewallResponse struct {
 	JobID             string `json:"jobid"`
 	Fwdevicecapacity  int64  `json:"fwdevicecapacity"`
 	Fwdeviceid        string `json:"fwdeviceid"`
@@ -503,13 +503,13 @@
 }
 
 // Configures a SRX firewall device
-func (s *FirewallService) ConfigureSrxFirewall(p *ConfigureSrxFirewallParams) (*ConfigureSrxFirewallResponse, error) {
+func (s *FirewallService) ConfigureSrxFirewall(p *ConfigureSrxFirewallParams) (*SrxFirewallResponse, error) {
 	resp, err := s.cs.newRequest("configureSrxFirewall", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigureSrxFirewallResponse
+	var r SrxFirewallResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -542,7 +542,7 @@
 	return &r, nil
 }
 
-type ConfigureSrxFirewallResponse struct {
+type SrxFirewallResponse struct {
 	JobID             string `json:"jobid"`
 	Fwdevicecapacity  int64  `json:"fwdevicecapacity"`
 	Fwdeviceid        string `json:"fwdeviceid"`
diff --git a/cloudstack/HostService.go b/cloudstack/HostService.go
index 85e7a42..1832d4a 100644
--- a/cloudstack/HostService.go
+++ b/cloudstack/HostService.go
@@ -218,35 +218,35 @@
 			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  string `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"`
+	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"`
 }
 
 type AddGloboDnsHostParams struct {
@@ -536,35 +536,35 @@
 			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  string `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"`
+	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"`
 }
 
 type AddSecondaryStorageParams struct {
@@ -736,35 +736,35 @@
 			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  string `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"`
+	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"`
 }
 
 type DedicateHostParams struct {
@@ -1827,35 +1827,35 @@
 			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  string `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"`
+	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"`
 }
 
 type PrepareHostForMaintenanceParams struct {
@@ -1957,35 +1957,35 @@
 			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  string `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"`
+	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"`
 }
 
 type ReconnectHostParams struct {
@@ -2087,35 +2087,35 @@
 			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  string `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"`
+	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"`
 }
 
 type ReleaseDedicatedHostParams struct {
@@ -2377,35 +2377,35 @@
 			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  string `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"`
+	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"`
 }
 
 type UpdateHostPasswordParams struct {
diff --git a/cloudstack/InternalLBService.go b/cloudstack/InternalLBService.go
index 905e7c5..00a7e0e 100644
--- a/cloudstack/InternalLBService.go
+++ b/cloudstack/InternalLBService.go
@@ -70,13 +70,13 @@
 }
 
 // Configures an Internal Load Balancer element.
-func (s *InternalLBService) ConfigureInternalLoadBalancerElement(p *ConfigureInternalLoadBalancerElementParams) (*ConfigureInternalLoadBalancerElementResponse, error) {
+func (s *InternalLBService) ConfigureInternalLoadBalancerElement(p *ConfigureInternalLoadBalancerElementParams) (*InternalLoadBalancerElementResponse, error) {
 	resp, err := s.cs.newRequest("configureInternalLoadBalancerElement", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigureInternalLoadBalancerElementResponse
+	var r InternalLoadBalancerElementResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -104,7 +104,7 @@
 	return &r, nil
 }
 
-type ConfigureInternalLoadBalancerElementResponse struct {
+type InternalLoadBalancerElementResponse struct {
 	JobID   string `json:"jobid"`
 	Enabled bool   `json:"enabled"`
 	Id      string `json:"id"`
diff --git a/cloudstack/LoadBalancerService.go b/cloudstack/LoadBalancerService.go
index f108776..6d95967 100644
--- a/cloudstack/LoadBalancerService.go
+++ b/cloudstack/LoadBalancerService.go
@@ -651,13 +651,13 @@
 }
 
 // configures a F5 load balancer device
-func (s *LoadBalancerService) ConfigureF5LoadBalancer(p *ConfigureF5LoadBalancerParams) (*ConfigureF5LoadBalancerResponse, error) {
+func (s *LoadBalancerService) ConfigureF5LoadBalancer(p *ConfigureF5LoadBalancerParams) (*F5LoadBalancerResponse, error) {
 	resp, err := s.cs.newRequest("configureF5LoadBalancer", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigureF5LoadBalancerResponse
+	var r F5LoadBalancerResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -685,7 +685,7 @@
 	return &r, nil
 }
 
-type ConfigureF5LoadBalancerResponse struct {
+type F5LoadBalancerResponse struct {
 	JobID             string `json:"jobid"`
 	Ipaddress         string `json:"ipaddress"`
 	Lbdevicecapacity  int64  `json:"lbdevicecapacity"`
@@ -780,13 +780,13 @@
 }
 
 // configures a netscaler load balancer device
-func (s *LoadBalancerService) ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*ConfigureNetscalerLoadBalancerResponse, error) {
+func (s *LoadBalancerService) ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*NetscalerLoadBalancerResponse, error) {
 	resp, err := s.cs.newRequest("configureNetscalerLoadBalancer", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigureNetscalerLoadBalancerResponse
+	var r NetscalerLoadBalancerResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -814,7 +814,7 @@
 	return &r, nil
 }
 
-type ConfigureNetscalerLoadBalancerResponse struct {
+type NetscalerLoadBalancerResponse struct {
 	JobID                   string   `json:"jobid"`
 	Gslbprovider            bool     `json:"gslbprovider"`
 	Gslbproviderprivateip   string   `json:"gslbproviderprivateip"`
diff --git a/cloudstack/OutofbandManagementService.go b/cloudstack/OutofbandManagementService.go
index 7d4b454..eb12c45 100644
--- a/cloudstack/OutofbandManagementService.go
+++ b/cloudstack/OutofbandManagementService.go
@@ -208,13 +208,13 @@
 }
 
 // Configures a host's out-of-band management interface
-func (s *OutofbandManagementService) ConfigureOutOfBandManagement(p *ConfigureOutOfBandManagementParams) (*ConfigureOutOfBandManagementResponse, error) {
+func (s *OutofbandManagementService) ConfigureOutOfBandManagement(p *ConfigureOutOfBandManagementParams) (*OutOfBandManagementResponse, error) {
 	resp, err := s.cs.newRequest("configureOutOfBandManagement", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigureOutOfBandManagementResponse
+	var r OutOfBandManagementResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -222,7 +222,7 @@
 	return &r, nil
 }
 
-type ConfigureOutOfBandManagementResponse struct {
+type OutOfBandManagementResponse struct {
 	Action      string `json:"action"`
 	Address     string `json:"address"`
 	Description string `json:"description"`
diff --git a/cloudstack/OvsElementService.go b/cloudstack/OvsElementService.go
index 418447a..cd5b22e 100644
--- a/cloudstack/OvsElementService.go
+++ b/cloudstack/OvsElementService.go
@@ -70,13 +70,13 @@
 }
 
 // Configures an ovs element.
-func (s *OvsElementService) ConfigureOvsElement(p *ConfigureOvsElementParams) (*ConfigureOvsElementResponse, error) {
+func (s *OvsElementService) ConfigureOvsElement(p *ConfigureOvsElementParams) (*OvsElementResponse, error) {
 	resp, err := s.cs.newRequest("configureOvsElement", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigureOvsElementResponse
+	var r OvsElementResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -104,7 +104,7 @@
 	return &r, nil
 }
 
-type ConfigureOvsElementResponse struct {
+type OvsElementResponse struct {
 	JobID     string `json:"jobid"`
 	Account   string `json:"account"`
 	Domain    string `json:"domain"`
diff --git a/cloudstack/RouterService.go b/cloudstack/RouterService.go
index 051d704..ec34cd3 100644
--- a/cloudstack/RouterService.go
+++ b/cloudstack/RouterService.go
@@ -202,13 +202,13 @@
 }
 
 // Configures a virtual router element.
-func (s *RouterService) ConfigureVirtualRouterElement(p *ConfigureVirtualRouterElementParams) (*ConfigureVirtualRouterElementResponse, error) {
+func (s *RouterService) ConfigureVirtualRouterElement(p *ConfigureVirtualRouterElementParams) (*VirtualRouterElementResponse, error) {
 	resp, err := s.cs.newRequest("configureVirtualRouterElement", p.toURLValues())
 	if err != nil {
 		return nil, err
 	}
 
-	var r ConfigureVirtualRouterElementResponse
+	var r VirtualRouterElementResponse
 	if err := json.Unmarshal(resp, &r); err != nil {
 		return nil, err
 	}
@@ -236,7 +236,7 @@
 	return &r, nil
 }
 
-type ConfigureVirtualRouterElementResponse struct {
+type VirtualRouterElementResponse struct {
 	JobID     string `json:"jobid"`
 	Account   string `json:"account"`
 	Domain    string `json:"domain"`
diff --git a/generate/generate.go b/generate/generate.go
index 4e056c4..219f574 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -1109,7 +1109,7 @@
 
 	// Generate the function signature
 	pn("// %s", a.Description)
-	pn("func (s *%s) %s(p *%s) (*%s, error) {", s.name, n, n+"Params", n+"Response")
+	pn("func (s *%s) %s(p *%s) (*%s, error) {", s.name, n, n+"Params", strings.TrimPrefix(n, "Configure")+"Response")
 
 	// Generate the function body
 	if n == "QueryAsyncJobResult" {
@@ -1145,7 +1145,7 @@
 		pn("		}")
 		pn("")
 	}
-	pn("	var r %s", n+"Response")
+	pn("	var r %s", strings.TrimPrefix(n, "Configure")+"Response")
 	pn("	if err := json.Unmarshal(resp, &r); err != nil {")
 	pn("		return nil, err")
 	pn("	}")
@@ -1217,7 +1217,7 @@
 
 func (s *service) generateResponseType(a *API) {
 	pn := s.pn
-	tn := capitalize(a.Name + "Response")
+	tn := capitalize(strings.TrimPrefix(a.Name, "configure") + "Response")
 	ln := capitalize(strings.TrimPrefix(a.Name, "list"))
 
 	// If this is a 'list' response, we need an seperate list struct. There seem to be other
@@ -1393,6 +1393,8 @@
 	case "uservmresponse":
 		// This is a really specific anomaly of the API
 		return "*VirtualMachine"
+	case "outofbandmanagementresponse":
+		return "OutOfBandManagementResponse"
 	default:
 		return "string"
 	}