You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2021/11/19 08:34:53 UTC
[cloudstack-go] branch main updated: Fix add tests (#16)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack-go.git
The following commit(s) were added to refs/heads/main by this push:
new c8c7cf5 Fix add tests (#16)
c8c7cf5 is described below
commit c8c7cf5956905a9b1ead4a2121da798c328719a1
Author: Pearl Dsilva <pe...@gmail.com>
AuthorDate: Fri Nov 19 14:04:49 2021 +0530
Fix add tests (#16)
* refactor tests
* Decouple Test data from tests
* Update listApis and add/refactor tests
---
Makefile | 12 +
cloudstack/AccountService.go | 42 +
cloudstack/AddressService.go | 3 +
cloudstack/AffinityGroupService.go | 8 +-
cloudstack/BrocadeVCSService.go | 5 +
cloudstack/ClusterService.go | 4 +
cloudstack/ConfigurationService.go | 1 +
cloudstack/ConfigurationService_test.go | 1 -
cloudstack/DiskOfferingService.go | 24 +
cloudstack/DomainService.go | 430 +-
cloudstack/HostService.go | 47 +-
cloudstack/HostService_mock.go | 16 +-
cloudstack/HostService_test.go | 5 +-
cloudstack/ISOService.go | 43 +-
cloudstack/ImageStoreService.go | 162 +-
cloudstack/InternalLBService.go | 3 +
cloudstack/LDAPService.go | 3 +
cloudstack/LimitService.go | 34 +-
.../AddHost.go => cloudstack/LimitService_test.go | 38 +-
.../NetworkACLService_test.go | 38 +-
cloudstack/NetworkOfferingService.go | 27 +-
cloudstack/NetworkOfferingService_mock.go | 8 +-
cloudstack/NetworkOfferingService_test.go | 2 +-
cloudstack/NetworkService.go | 128 +-
cloudstack/NetworkService_test.go | 1 -
cloudstack/NicService.go | 8 +-
cloudstack/PodService.go | 27 +
cloudstack/PoolService.go | 4 +
cloudstack/ProjectService.go | 555 +
cloudstack/ProjectService_mock.go | 116 +
cloudstack/ProjectService_test.go | 25 +
cloudstack/RouterService.go | 44 +
cloudstack/SSHService.go | 96 +-
cloudstack/SSHService_mock.go | 21 +
cloudstack/ServiceOfferingService.go | 67 +-
cloudstack/SnapshotService.go | 220 +-
cloudstack/StoragePoolService.go | 2 +
cloudstack/SwiftService.go | 54 +-
cloudstack/SystemVMService.go | 637 +-
cloudstack/SystemVMService_mock.go | 8 +-
cloudstack/TemplateService.go | 31 +
cloudstack/UsageService.go | 1 +
cloudstack/UserService.go | 26 +
cloudstack/VMGroupService.go | 63 +-
cloudstack/VPCService.go | 419 +-
.../AddHost.go => cloudstack/VPCService_test.go | 38 +-
cloudstack/VPNService.go | 3 +
.../AddHost.go => cloudstack/VPNService_test.go | 38 +-
cloudstack/VirtualMachineService.go | 266 +-
cloudstack/VirtualMachineService_mock.go | 8 +-
cloudstack/VirtualMachineService_test.go | 23 +
cloudstack/VolumeService.go | 34 +
cloudstack/ZoneService.go | 25 +
cloudstack/testdata/LimitServiceData.json | 7 +
cloudstack/testdata/NetworkACLServiceData.json | 32 +
cloudstack/testdata/ProjectServiceData.json | 16 +
cloudstack/testdata/VPCServiceData.json | 26 +
cloudstack/testdata/VPNServiceData.json | 26 +
cloudstack/testdata/VirtualMachineServiceData.json | 105 +
examples/{ACSDetails.go => ACSOps.go} | 10 +-
examples/AddHost.go | 15 +-
examples/CreateDeleteDomain.go | 6 +-
examples/HostOperations.go | 5 +-
generate/layout.go | 4 +
generate/listApis.json | 109377 +++++++++---------
65 files changed, 58373 insertions(+), 55200 deletions(-)
diff --git a/Makefile b/Makefile
index 5cf684c..3c52362 100644
--- a/Makefile
+++ b/Makefile
@@ -29,3 +29,15 @@ MOCKGEN := $(shell pwd)/bin/mockgen
mockgen: ## Download conversion-gen locally if necessary.
$(call go-get-tool,$(MOCKGEN),github.com/golang/mock/mockgen)
+PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
+define go-get-tool
+[ -f $(1) ] || { \
+set -e ;\
+TMP_DIR=$$(mktemp -d) ;\
+cd $$TMP_DIR ;\
+go mod init tmp ;\
+echo "Downloading $(2)" ;\
+GOBIN=$(PROJECT_DIR)/bin go get $(2) ;\
+rm -rf $$TMP_DIR ;\
+}
+endef
diff --git a/cloudstack/AccountService.go b/cloudstack/AccountService.go
index 80b2cc2..32680e5 100644
--- a/cloudstack/AccountService.go
+++ b/cloudstack/AccountService.go
@@ -513,11 +513,13 @@ type CreateAccountResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -579,6 +581,7 @@ type CreateAccountResponseUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -899,11 +902,13 @@ type DisableAccountResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -965,6 +970,7 @@ type DisableAccountResponseUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -1074,11 +1080,13 @@ type EnableAccountResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -1140,6 +1148,7 @@ type EnableAccountResponseUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -1282,6 +1291,10 @@ func (p *ListAccountsParams) toURLValues() url.Values {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["state"]; found {
u.Set("state", v.(string))
}
@@ -1453,6 +1466,21 @@ func (p *ListAccountsParams) GetPagesize() (int, bool) {
return value, ok
}
+func (p *ListAccountsParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListAccountsParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListAccountsParams) SetState(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1585,11 +1613,13 @@ type Account struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -1651,6 +1681,7 @@ type AccountUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -1893,9 +1924,11 @@ type ProjectAccount struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -2030,11 +2063,13 @@ type LockAccountResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -2096,6 +2131,7 @@ type LockAccountResponseUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -2228,11 +2264,13 @@ type MarkDefaultZoneForAccountResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -2294,6 +2332,7 @@ type MarkDefaultZoneForAccountResponseUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -2479,11 +2518,13 @@ type UpdateAccountResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -2545,6 +2586,7 @@ type UpdateAccountResponseUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
diff --git a/cloudstack/AddressService.go b/cloudstack/AddressService.go
index 0e76635..dacecc2 100644
--- a/cloudstack/AddressService.go
+++ b/cloudstack/AddressService.go
@@ -286,6 +286,7 @@ type AssociateIpAddressResponse struct {
Domainid string `json:"domainid"`
Fordisplay bool `json:"fordisplay"`
Forvirtualnetwork bool `json:"forvirtualnetwork"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
Isportable bool `json:"isportable"`
@@ -918,6 +919,7 @@ type PublicIpAddress struct {
Domainid string `json:"domainid"`
Fordisplay bool `json:"fordisplay"`
Forvirtualnetwork bool `json:"forvirtualnetwork"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
Isportable bool `json:"isportable"`
@@ -1066,6 +1068,7 @@ type UpdateIpAddressResponse struct {
Domainid string `json:"domainid"`
Fordisplay bool `json:"fordisplay"`
Forvirtualnetwork bool `json:"forvirtualnetwork"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
Isportable bool `json:"isportable"`
diff --git a/cloudstack/AffinityGroupService.go b/cloudstack/AffinityGroupService.go
index 4537303..3d6ae18 100644
--- a/cloudstack/AffinityGroupService.go
+++ b/cloudstack/AffinityGroupService.go
@@ -977,9 +977,11 @@ type UpdateVMAffinityGroupResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -989,6 +991,7 @@ type UpdateVMAffinityGroupResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -1001,14 +1004,17 @@ type UpdateVMAffinityGroupResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []UpdateVMAffinityGroupResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
diff --git a/cloudstack/BrocadeVCSService.go b/cloudstack/BrocadeVCSService.go
index cc42fff..fc90274 100644
--- a/cloudstack/BrocadeVCSService.go
+++ b/cloudstack/BrocadeVCSService.go
@@ -416,6 +416,7 @@ type BrocadeVcsDeviceNetwork struct {
Broadcasturi string `json:"broadcasturi"`
Canusefordeploy bool `json:"canusefordeploy"`
Cidr string `json:"cidr"`
+ Created string `json:"created"`
Details map[string]string `json:"details"`
Displaynetwork bool `json:"displaynetwork"`
Displaytext string `json:"displaytext"`
@@ -425,6 +426,8 @@ type BrocadeVcsDeviceNetwork struct {
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ip6cidr string `json:"ip6cidr"`
Ip6gateway string `json:"ip6gateway"`
@@ -445,10 +448,12 @@ type BrocadeVcsDeviceNetwork struct {
Physicalnetworkid string `json:"physicalnetworkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
+ Receivedbytes int64 `json:"receivedbytes"`
Redundantrouter bool `json:"redundantrouter"`
Related string `json:"related"`
Reservediprange string `json:"reservediprange"`
Restartrequired bool `json:"restartrequired"`
+ Sentbytes int64 `json:"sentbytes"`
Service []BrocadeVcsDeviceNetworkService `json:"service"`
Specifyipranges bool `json:"specifyipranges"`
State string `json:"state"`
diff --git a/cloudstack/ClusterService.go b/cloudstack/ClusterService.go
index 7399c54..1bc5667 100644
--- a/cloudstack/ClusterService.go
+++ b/cloudstack/ClusterService.go
@@ -447,6 +447,7 @@ type AddClusterResponse struct {
Capacity []AddClusterResponseCapacity `json:"capacity"`
Clustertype string `json:"clustertype"`
Cpuovercommitratio string `json:"cpuovercommitratio"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisortype string `json:"hypervisortype"`
Id string `json:"id"`
JobID string `json:"jobid"`
@@ -1366,6 +1367,7 @@ type Cluster struct {
Capacity []ClusterCapacity `json:"capacity"`
Clustertype string `json:"clustertype"`
Cpuovercommitratio string `json:"cpuovercommitratio"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisortype string `json:"hypervisortype"`
Id string `json:"id"`
JobID string `json:"jobid"`
@@ -1751,6 +1753,7 @@ type ClustersMetric struct {
Cputhreshold bool `json:"cputhreshold"`
Cputotal string `json:"cputotal"`
Cpuused string `json:"cpuused"`
+ Hasannotations bool `json:"hasannotations"`
Hosts string `json:"hosts"`
Hypervisortype string `json:"hypervisortype"`
Id string `json:"id"`
@@ -2199,6 +2202,7 @@ type UpdateClusterResponse struct {
Capacity []UpdateClusterResponseCapacity `json:"capacity"`
Clustertype string `json:"clustertype"`
Cpuovercommitratio string `json:"cpuovercommitratio"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisortype string `json:"hypervisortype"`
Id string `json:"id"`
JobID string `json:"jobid"`
diff --git a/cloudstack/ConfigurationService.go b/cloudstack/ConfigurationService.go
index 8ceb01d..ee60f39 100644
--- a/cloudstack/ConfigurationService.go
+++ b/cloudstack/ConfigurationService.go
@@ -86,6 +86,7 @@ type Capability struct {
Cloudstackversion string `json:"cloudstackversion"`
Customdiskofferingmaxsize int64 `json:"customdiskofferingmaxsize"`
Customdiskofferingminsize int64 `json:"customdiskofferingminsize"`
+ Defaultuipagesize int64 `json:"defaultuipagesize"`
Dynamicrolesenabled bool `json:"dynamicrolesenabled"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
diff --git a/cloudstack/ConfigurationService_test.go b/cloudstack/ConfigurationService_test.go
index 70518ed..00d1053 100644
--- a/cloudstack/ConfigurationService_test.go
+++ b/cloudstack/ConfigurationService_test.go
@@ -86,7 +86,6 @@ func TestConfigurationService_UpdateConfigurations(t *testing.T) {
if err != nil {
t.Errorf("Failed to update configuration due to: %v", err)
}
-
if resp.Value != "false" {
t.Errorf("Failed to update configuration")
}
diff --git a/cloudstack/DiskOfferingService.go b/cloudstack/DiskOfferingService.go
index 91e3095..863a046 100644
--- a/cloudstack/DiskOfferingService.go
+++ b/cloudstack/DiskOfferingService.go
@@ -85,6 +85,12 @@ func (p *CreateDiskOfferingParams) toURLValues() url.Values {
vv := strconv.FormatBool(v.(bool))
u.Set("customizediops", vv)
}
+ if v, found := p.p["details"]; found {
+ m := v.(map[string]string)
+ for i, k := range getSortedKeysFromMap(m) {
+ u.Set(fmt.Sprintf("details[%d].%s", i, k), m[k])
+ }
+ }
if v, found := p.p["disksize"]; found {
vv := strconv.FormatInt(v.(int64), 10)
u.Set("disksize", vv)
@@ -293,6 +299,21 @@ func (p *CreateDiskOfferingParams) GetCustomizediops() (bool, bool) {
return value, ok
}
+func (p *CreateDiskOfferingParams) SetDetails(v map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["details"] = v
+}
+
+func (p *CreateDiskOfferingParams) GetDetails() (map[string]string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["details"].(map[string]string)
+ return value, ok
+}
+
func (p *CreateDiskOfferingParams) SetDisksize(v int64) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -623,6 +644,7 @@ type CreateDiskOfferingResponse struct {
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisorsnapshotreserve int `json:"hypervisorsnapshotreserve"`
Id string `json:"id"`
Iscustomized bool `json:"iscustomized"`
@@ -1037,6 +1059,7 @@ type DiskOffering struct {
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisorsnapshotreserve int `json:"hypervisorsnapshotreserve"`
Id string `json:"id"`
Iscustomized bool `json:"iscustomized"`
@@ -1502,6 +1525,7 @@ type UpdateDiskOfferingResponse struct {
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisorsnapshotreserve int `json:"hypervisorsnapshotreserve"`
Id string `json:"id"`
Iscustomized bool `json:"iscustomized"`
diff --git a/cloudstack/DomainService.go b/cloudstack/DomainService.go
index e6668b7..24a4342 100644
--- a/cloudstack/DomainService.go
+++ b/cloudstack/DomainService.go
@@ -159,53 +159,57 @@ func (s *DomainService) CreateDomain(p *CreateDomainParams) (*CreateDomainRespon
}
type CreateDomainResponse struct {
- Cpuavailable string `json:"cpuavailable"`
- Cpulimit string `json:"cpulimit"`
- Cputotal int64 `json:"cputotal"`
- Haschild bool `json:"haschild"`
- Id string `json:"id"`
- Ipavailable string `json:"ipavailable"`
- Iplimit string `json:"iplimit"`
- Iptotal int64 `json:"iptotal"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Level int `json:"level"`
- Memoryavailable string `json:"memoryavailable"`
- Memorylimit string `json:"memorylimit"`
- Memorytotal int64 `json:"memorytotal"`
- Name string `json:"name"`
- Networkavailable string `json:"networkavailable"`
- Networkdomain string `json:"networkdomain"`
- Networklimit string `json:"networklimit"`
- Networktotal int64 `json:"networktotal"`
- Parentdomainid string `json:"parentdomainid"`
- Parentdomainname string `json:"parentdomainname"`
- Path string `json:"path"`
- Primarystorageavailable string `json:"primarystorageavailable"`
- Primarystoragelimit string `json:"primarystoragelimit"`
- Primarystoragetotal int64 `json:"primarystoragetotal"`
- Projectavailable string `json:"projectavailable"`
- Projectlimit string `json:"projectlimit"`
- Projecttotal int64 `json:"projecttotal"`
- Secondarystorageavailable string `json:"secondarystorageavailable"`
- Secondarystoragelimit string `json:"secondarystoragelimit"`
- Secondarystoragetotal float64 `json:"secondarystoragetotal"`
- Snapshotavailable string `json:"snapshotavailable"`
- Snapshotlimit string `json:"snapshotlimit"`
- Snapshottotal int64 `json:"snapshottotal"`
- State string `json:"state"`
- Templateavailable string `json:"templateavailable"`
- Templatelimit string `json:"templatelimit"`
- Templatetotal int64 `json:"templatetotal"`
- Vmavailable string `json:"vmavailable"`
- Vmlimit string `json:"vmlimit"`
- Vmtotal int64 `json:"vmtotal"`
- Volumeavailable string `json:"volumeavailable"`
- Volumelimit string `json:"volumelimit"`
- Volumetotal int64 `json:"volumetotal"`
- Vpcavailable string `json:"vpcavailable"`
- Vpclimit string `json:"vpclimit"`
- Vpctotal int64 `json:"vpctotal"`
+ Cpuavailable string `json:"cpuavailable"`
+ Cpulimit string `json:"cpulimit"`
+ Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
+ Domaindetails map[string]string `json:"domaindetails"`
+ Hasannotations bool `json:"hasannotations"`
+ Haschild bool `json:"haschild"`
+ Icon string `json:"icon"`
+ Id string `json:"id"`
+ Ipavailable string `json:"ipavailable"`
+ Iplimit string `json:"iplimit"`
+ Iptotal int64 `json:"iptotal"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Level int `json:"level"`
+ Memoryavailable string `json:"memoryavailable"`
+ Memorylimit string `json:"memorylimit"`
+ Memorytotal int64 `json:"memorytotal"`
+ Name string `json:"name"`
+ Networkavailable string `json:"networkavailable"`
+ Networkdomain string `json:"networkdomain"`
+ Networklimit string `json:"networklimit"`
+ Networktotal int64 `json:"networktotal"`
+ Parentdomainid string `json:"parentdomainid"`
+ Parentdomainname string `json:"parentdomainname"`
+ Path string `json:"path"`
+ Primarystorageavailable string `json:"primarystorageavailable"`
+ Primarystoragelimit string `json:"primarystoragelimit"`
+ Primarystoragetotal int64 `json:"primarystoragetotal"`
+ Projectavailable string `json:"projectavailable"`
+ Projectlimit string `json:"projectlimit"`
+ Projecttotal int64 `json:"projecttotal"`
+ Secondarystorageavailable string `json:"secondarystorageavailable"`
+ Secondarystoragelimit string `json:"secondarystoragelimit"`
+ Secondarystoragetotal float64 `json:"secondarystoragetotal"`
+ Snapshotavailable string `json:"snapshotavailable"`
+ Snapshotlimit string `json:"snapshotlimit"`
+ Snapshottotal int64 `json:"snapshottotal"`
+ State string `json:"state"`
+ Templateavailable string `json:"templateavailable"`
+ Templatelimit string `json:"templatelimit"`
+ Templatetotal int64 `json:"templatetotal"`
+ Vmavailable string `json:"vmavailable"`
+ Vmlimit string `json:"vmlimit"`
+ Vmtotal int64 `json:"vmtotal"`
+ Volumeavailable string `json:"volumeavailable"`
+ Volumelimit string `json:"volumelimit"`
+ Volumetotal int64 `json:"volumetotal"`
+ Vpcavailable string `json:"vpcavailable"`
+ Vpclimit string `json:"vpclimit"`
+ Vpctotal int64 `json:"vpctotal"`
}
type DeleteDomainParams struct {
@@ -337,6 +341,10 @@ func (p *ListDomainChildrenParams) toURLValues() url.Values {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
return u
}
@@ -445,6 +453,21 @@ func (p *ListDomainChildrenParams) GetPagesize() (int, bool) {
return value, ok
}
+func (p *ListDomainChildrenParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListDomainChildrenParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
// You should always use this function to get a new ListDomainChildrenParams instance,
// as then you are sure you have configured all required params
func (s *DomainService) NewListDomainChildrenParams() *ListDomainChildrenParams {
@@ -557,53 +580,57 @@ type ListDomainChildrenResponse struct {
}
type DomainChildren struct {
- Cpuavailable string `json:"cpuavailable"`
- Cpulimit string `json:"cpulimit"`
- Cputotal int64 `json:"cputotal"`
- Haschild bool `json:"haschild"`
- Id string `json:"id"`
- Ipavailable string `json:"ipavailable"`
- Iplimit string `json:"iplimit"`
- Iptotal int64 `json:"iptotal"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Level int `json:"level"`
- Memoryavailable string `json:"memoryavailable"`
- Memorylimit string `json:"memorylimit"`
- Memorytotal int64 `json:"memorytotal"`
- Name string `json:"name"`
- Networkavailable string `json:"networkavailable"`
- Networkdomain string `json:"networkdomain"`
- Networklimit string `json:"networklimit"`
- Networktotal int64 `json:"networktotal"`
- Parentdomainid string `json:"parentdomainid"`
- Parentdomainname string `json:"parentdomainname"`
- Path string `json:"path"`
- Primarystorageavailable string `json:"primarystorageavailable"`
- Primarystoragelimit string `json:"primarystoragelimit"`
- Primarystoragetotal int64 `json:"primarystoragetotal"`
- Projectavailable string `json:"projectavailable"`
- Projectlimit string `json:"projectlimit"`
- Projecttotal int64 `json:"projecttotal"`
- Secondarystorageavailable string `json:"secondarystorageavailable"`
- Secondarystoragelimit string `json:"secondarystoragelimit"`
- Secondarystoragetotal float64 `json:"secondarystoragetotal"`
- Snapshotavailable string `json:"snapshotavailable"`
- Snapshotlimit string `json:"snapshotlimit"`
- Snapshottotal int64 `json:"snapshottotal"`
- State string `json:"state"`
- Templateavailable string `json:"templateavailable"`
- Templatelimit string `json:"templatelimit"`
- Templatetotal int64 `json:"templatetotal"`
- Vmavailable string `json:"vmavailable"`
- Vmlimit string `json:"vmlimit"`
- Vmtotal int64 `json:"vmtotal"`
- Volumeavailable string `json:"volumeavailable"`
- Volumelimit string `json:"volumelimit"`
- Volumetotal int64 `json:"volumetotal"`
- Vpcavailable string `json:"vpcavailable"`
- Vpclimit string `json:"vpclimit"`
- Vpctotal int64 `json:"vpctotal"`
+ Cpuavailable string `json:"cpuavailable"`
+ Cpulimit string `json:"cpulimit"`
+ Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
+ Domaindetails map[string]string `json:"domaindetails"`
+ Hasannotations bool `json:"hasannotations"`
+ Haschild bool `json:"haschild"`
+ Icon string `json:"icon"`
+ Id string `json:"id"`
+ Ipavailable string `json:"ipavailable"`
+ Iplimit string `json:"iplimit"`
+ Iptotal int64 `json:"iptotal"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Level int `json:"level"`
+ Memoryavailable string `json:"memoryavailable"`
+ Memorylimit string `json:"memorylimit"`
+ Memorytotal int64 `json:"memorytotal"`
+ Name string `json:"name"`
+ Networkavailable string `json:"networkavailable"`
+ Networkdomain string `json:"networkdomain"`
+ Networklimit string `json:"networklimit"`
+ Networktotal int64 `json:"networktotal"`
+ Parentdomainid string `json:"parentdomainid"`
+ Parentdomainname string `json:"parentdomainname"`
+ Path string `json:"path"`
+ Primarystorageavailable string `json:"primarystorageavailable"`
+ Primarystoragelimit string `json:"primarystoragelimit"`
+ Primarystoragetotal int64 `json:"primarystoragetotal"`
+ Projectavailable string `json:"projectavailable"`
+ Projectlimit string `json:"projectlimit"`
+ Projecttotal int64 `json:"projecttotal"`
+ Secondarystorageavailable string `json:"secondarystorageavailable"`
+ Secondarystoragelimit string `json:"secondarystoragelimit"`
+ Secondarystoragetotal float64 `json:"secondarystoragetotal"`
+ Snapshotavailable string `json:"snapshotavailable"`
+ Snapshotlimit string `json:"snapshotlimit"`
+ Snapshottotal int64 `json:"snapshottotal"`
+ State string `json:"state"`
+ Templateavailable string `json:"templateavailable"`
+ Templatelimit string `json:"templatelimit"`
+ Templatetotal int64 `json:"templatetotal"`
+ Vmavailable string `json:"vmavailable"`
+ Vmlimit string `json:"vmlimit"`
+ Vmtotal int64 `json:"vmtotal"`
+ Volumeavailable string `json:"volumeavailable"`
+ Volumelimit string `json:"volumelimit"`
+ Volumetotal int64 `json:"volumetotal"`
+ Vpcavailable string `json:"vpcavailable"`
+ Vpclimit string `json:"vpclimit"`
+ Vpctotal int64 `json:"vpctotal"`
}
type ListDomainsParams struct {
@@ -644,6 +671,10 @@ func (p *ListDomainsParams) toURLValues() url.Values {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
return u
}
@@ -767,6 +798,21 @@ func (p *ListDomainsParams) GetPagesize() (int, bool) {
return value, ok
}
+func (p *ListDomainsParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListDomainsParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
// You should always use this function to get a new ListDomainsParams instance,
// as then you are sure you have configured all required params
func (s *DomainService) NewListDomainsParams() *ListDomainsParams {
@@ -879,53 +925,57 @@ type ListDomainsResponse struct {
}
type Domain struct {
- Cpuavailable string `json:"cpuavailable"`
- Cpulimit string `json:"cpulimit"`
- Cputotal int64 `json:"cputotal"`
- Haschild bool `json:"haschild"`
- Id string `json:"id"`
- Ipavailable string `json:"ipavailable"`
- Iplimit string `json:"iplimit"`
- Iptotal int64 `json:"iptotal"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Level int `json:"level"`
- Memoryavailable string `json:"memoryavailable"`
- Memorylimit string `json:"memorylimit"`
- Memorytotal int64 `json:"memorytotal"`
- Name string `json:"name"`
- Networkavailable string `json:"networkavailable"`
- Networkdomain string `json:"networkdomain"`
- Networklimit string `json:"networklimit"`
- Networktotal int64 `json:"networktotal"`
- Parentdomainid string `json:"parentdomainid"`
- Parentdomainname string `json:"parentdomainname"`
- Path string `json:"path"`
- Primarystorageavailable string `json:"primarystorageavailable"`
- Primarystoragelimit string `json:"primarystoragelimit"`
- Primarystoragetotal int64 `json:"primarystoragetotal"`
- Projectavailable string `json:"projectavailable"`
- Projectlimit string `json:"projectlimit"`
- Projecttotal int64 `json:"projecttotal"`
- Secondarystorageavailable string `json:"secondarystorageavailable"`
- Secondarystoragelimit string `json:"secondarystoragelimit"`
- Secondarystoragetotal float64 `json:"secondarystoragetotal"`
- Snapshotavailable string `json:"snapshotavailable"`
- Snapshotlimit string `json:"snapshotlimit"`
- Snapshottotal int64 `json:"snapshottotal"`
- State string `json:"state"`
- Templateavailable string `json:"templateavailable"`
- Templatelimit string `json:"templatelimit"`
- Templatetotal int64 `json:"templatetotal"`
- Vmavailable string `json:"vmavailable"`
- Vmlimit string `json:"vmlimit"`
- Vmtotal int64 `json:"vmtotal"`
- Volumeavailable string `json:"volumeavailable"`
- Volumelimit string `json:"volumelimit"`
- Volumetotal int64 `json:"volumetotal"`
- Vpcavailable string `json:"vpcavailable"`
- Vpclimit string `json:"vpclimit"`
- Vpctotal int64 `json:"vpctotal"`
+ Cpuavailable string `json:"cpuavailable"`
+ Cpulimit string `json:"cpulimit"`
+ Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
+ Domaindetails map[string]string `json:"domaindetails"`
+ Hasannotations bool `json:"hasannotations"`
+ Haschild bool `json:"haschild"`
+ Icon string `json:"icon"`
+ Id string `json:"id"`
+ Ipavailable string `json:"ipavailable"`
+ Iplimit string `json:"iplimit"`
+ Iptotal int64 `json:"iptotal"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Level int `json:"level"`
+ Memoryavailable string `json:"memoryavailable"`
+ Memorylimit string `json:"memorylimit"`
+ Memorytotal int64 `json:"memorytotal"`
+ Name string `json:"name"`
+ Networkavailable string `json:"networkavailable"`
+ Networkdomain string `json:"networkdomain"`
+ Networklimit string `json:"networklimit"`
+ Networktotal int64 `json:"networktotal"`
+ Parentdomainid string `json:"parentdomainid"`
+ Parentdomainname string `json:"parentdomainname"`
+ Path string `json:"path"`
+ Primarystorageavailable string `json:"primarystorageavailable"`
+ Primarystoragelimit string `json:"primarystoragelimit"`
+ Primarystoragetotal int64 `json:"primarystoragetotal"`
+ Projectavailable string `json:"projectavailable"`
+ Projectlimit string `json:"projectlimit"`
+ Projecttotal int64 `json:"projecttotal"`
+ Secondarystorageavailable string `json:"secondarystorageavailable"`
+ Secondarystoragelimit string `json:"secondarystoragelimit"`
+ Secondarystoragetotal float64 `json:"secondarystoragetotal"`
+ Snapshotavailable string `json:"snapshotavailable"`
+ Snapshotlimit string `json:"snapshotlimit"`
+ Snapshottotal int64 `json:"snapshottotal"`
+ State string `json:"state"`
+ Templateavailable string `json:"templateavailable"`
+ Templatelimit string `json:"templatelimit"`
+ Templatetotal int64 `json:"templatetotal"`
+ Vmavailable string `json:"vmavailable"`
+ Vmlimit string `json:"vmlimit"`
+ Vmtotal int64 `json:"vmtotal"`
+ Volumeavailable string `json:"volumeavailable"`
+ Volumelimit string `json:"volumelimit"`
+ Volumetotal int64 `json:"volumetotal"`
+ Vpcavailable string `json:"vpcavailable"`
+ Vpclimit string `json:"vpclimit"`
+ Vpctotal int64 `json:"vpctotal"`
}
type UpdateDomainParams struct {
@@ -1023,51 +1073,55 @@ func (s *DomainService) UpdateDomain(p *UpdateDomainParams) (*UpdateDomainRespon
}
type UpdateDomainResponse struct {
- Cpuavailable string `json:"cpuavailable"`
- Cpulimit string `json:"cpulimit"`
- Cputotal int64 `json:"cputotal"`
- Haschild bool `json:"haschild"`
- Id string `json:"id"`
- Ipavailable string `json:"ipavailable"`
- Iplimit string `json:"iplimit"`
- Iptotal int64 `json:"iptotal"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Level int `json:"level"`
- Memoryavailable string `json:"memoryavailable"`
- Memorylimit string `json:"memorylimit"`
- Memorytotal int64 `json:"memorytotal"`
- Name string `json:"name"`
- Networkavailable string `json:"networkavailable"`
- Networkdomain string `json:"networkdomain"`
- Networklimit string `json:"networklimit"`
- Networktotal int64 `json:"networktotal"`
- Parentdomainid string `json:"parentdomainid"`
- Parentdomainname string `json:"parentdomainname"`
- Path string `json:"path"`
- Primarystorageavailable string `json:"primarystorageavailable"`
- Primarystoragelimit string `json:"primarystoragelimit"`
- Primarystoragetotal int64 `json:"primarystoragetotal"`
- Projectavailable string `json:"projectavailable"`
- Projectlimit string `json:"projectlimit"`
- Projecttotal int64 `json:"projecttotal"`
- Secondarystorageavailable string `json:"secondarystorageavailable"`
- Secondarystoragelimit string `json:"secondarystoragelimit"`
- Secondarystoragetotal float64 `json:"secondarystoragetotal"`
- Snapshotavailable string `json:"snapshotavailable"`
- Snapshotlimit string `json:"snapshotlimit"`
- Snapshottotal int64 `json:"snapshottotal"`
- State string `json:"state"`
- Templateavailable string `json:"templateavailable"`
- Templatelimit string `json:"templatelimit"`
- Templatetotal int64 `json:"templatetotal"`
- Vmavailable string `json:"vmavailable"`
- Vmlimit string `json:"vmlimit"`
- Vmtotal int64 `json:"vmtotal"`
- Volumeavailable string `json:"volumeavailable"`
- Volumelimit string `json:"volumelimit"`
- Volumetotal int64 `json:"volumetotal"`
- Vpcavailable string `json:"vpcavailable"`
- Vpclimit string `json:"vpclimit"`
- Vpctotal int64 `json:"vpctotal"`
+ Cpuavailable string `json:"cpuavailable"`
+ Cpulimit string `json:"cpulimit"`
+ Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
+ Domaindetails map[string]string `json:"domaindetails"`
+ Hasannotations bool `json:"hasannotations"`
+ Haschild bool `json:"haschild"`
+ Icon string `json:"icon"`
+ Id string `json:"id"`
+ Ipavailable string `json:"ipavailable"`
+ Iplimit string `json:"iplimit"`
+ Iptotal int64 `json:"iptotal"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Level int `json:"level"`
+ Memoryavailable string `json:"memoryavailable"`
+ Memorylimit string `json:"memorylimit"`
+ Memorytotal int64 `json:"memorytotal"`
+ Name string `json:"name"`
+ Networkavailable string `json:"networkavailable"`
+ Networkdomain string `json:"networkdomain"`
+ Networklimit string `json:"networklimit"`
+ Networktotal int64 `json:"networktotal"`
+ Parentdomainid string `json:"parentdomainid"`
+ Parentdomainname string `json:"parentdomainname"`
+ Path string `json:"path"`
+ Primarystorageavailable string `json:"primarystorageavailable"`
+ Primarystoragelimit string `json:"primarystoragelimit"`
+ Primarystoragetotal int64 `json:"primarystoragetotal"`
+ Projectavailable string `json:"projectavailable"`
+ Projectlimit string `json:"projectlimit"`
+ Projecttotal int64 `json:"projecttotal"`
+ Secondarystorageavailable string `json:"secondarystorageavailable"`
+ Secondarystoragelimit string `json:"secondarystoragelimit"`
+ Secondarystoragetotal float64 `json:"secondarystoragetotal"`
+ Snapshotavailable string `json:"snapshotavailable"`
+ Snapshotlimit string `json:"snapshotlimit"`
+ Snapshottotal int64 `json:"snapshottotal"`
+ State string `json:"state"`
+ Templateavailable string `json:"templateavailable"`
+ Templatelimit string `json:"templatelimit"`
+ Templatetotal int64 `json:"templatetotal"`
+ Vmavailable string `json:"vmavailable"`
+ Vmlimit string `json:"vmlimit"`
+ Vmtotal int64 `json:"vmtotal"`
+ Volumeavailable string `json:"volumeavailable"`
+ Volumelimit string `json:"volumelimit"`
+ Volumetotal int64 `json:"volumetotal"`
+ Vpcavailable string `json:"vpcavailable"`
+ Vpclimit string `json:"vpclimit"`
+ Vpctotal int64 `json:"vpctotal"`
}
diff --git a/cloudstack/HostService.go b/cloudstack/HostService.go
index 8c51c61..3412c9a 100644
--- a/cloudstack/HostService.go
+++ b/cloudstack/HostService.go
@@ -29,11 +29,11 @@ import (
type HostServiceIface interface {
AddBaremetalHost(p *AddBaremetalHostParams) (*AddBaremetalHostResponse, error)
- NewAddBaremetalHostParams(hypervisor string, password string, podid string, url string, username string, zoneid string) *AddBaremetalHostParams
+ NewAddBaremetalHostParams(hypervisor string, podid string, url string, zoneid string) *AddBaremetalHostParams
AddGloboDnsHost(p *AddGloboDnsHostParams) (*AddGloboDnsHostResponse, error)
NewAddGloboDnsHostParams(password string, physicalnetworkid string, url string, username string) *AddGloboDnsHostParams
AddHost(p *AddHostParams) (*AddHostResponse, error)
- NewAddHostParams(hypervisor string, password string, podid string, url string, username string, zoneid string) *AddHostParams
+ NewAddHostParams(hypervisor string, podid string, url string, zoneid string) *AddHostParams
AddSecondaryStorage(p *AddSecondaryStorageParams) (*AddSecondaryStorageResponse, error)
NewAddSecondaryStorageParams(url string) *AddSecondaryStorageParams
CancelHostMaintenance(p *CancelHostMaintenanceParams) (*CancelHostMaintenanceResponse, error)
@@ -294,14 +294,12 @@ func (p *AddBaremetalHostParams) GetZoneid() (string, bool) {
// You should always use this function to get a new AddBaremetalHostParams instance,
// as then you are sure you have configured all required params
-func (s *HostService) NewAddBaremetalHostParams(hypervisor string, password string, podid string, url string, username string, zoneid string) *AddBaremetalHostParams {
+func (s *HostService) NewAddBaremetalHostParams(hypervisor string, podid string, url string, zoneid string) *AddBaremetalHostParams {
p := &AddBaremetalHostParams{}
p.p = make(map[string]interface{})
p.p["hypervisor"] = hypervisor
- p.p["password"] = password
p.p["podid"] = podid
p.p["url"] = url
- p.p["username"] = username
p.p["zoneid"] = zoneid
return p
}
@@ -345,6 +343,7 @@ type AddBaremetalHostResponse struct {
Events string `json:"events"`
Gpugroup []AddBaremetalHostResponseGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
@@ -728,14 +727,12 @@ func (p *AddHostParams) GetZoneid() (string, bool) {
// You should always use this function to get a new AddHostParams instance,
// as then you are sure you have configured all required params
-func (s *HostService) NewAddHostParams(hypervisor string, password string, podid string, url string, username string, zoneid string) *AddHostParams {
+func (s *HostService) NewAddHostParams(hypervisor string, podid string, url string, zoneid string) *AddHostParams {
p := &AddHostParams{}
p.p = make(map[string]interface{})
p.p["hypervisor"] = hypervisor
- p.p["password"] = password
p.p["podid"] = podid
p.p["url"] = url
- p.p["username"] = username
p.p["zoneid"] = zoneid
return p
}
@@ -779,6 +776,7 @@ type AddHostResponse struct {
Events string `json:"events"`
Gpugroup []AddHostResponseGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
@@ -907,19 +905,20 @@ func (s *HostService) AddSecondaryStorage(p *AddSecondaryStorageParams) (*AddSec
}
type AddSecondaryStorageResponse struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type CancelHostMaintenanceParams struct {
@@ -1020,6 +1019,7 @@ type CancelHostMaintenanceResponse struct {
Events string `json:"events"`
Gpugroup []CancelHostMaintenanceResponseGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
@@ -2632,6 +2632,7 @@ type Host struct {
Events string `json:"events"`
Gpugroup []HostGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
@@ -3152,6 +3153,7 @@ type HostsMetric struct {
Events string `json:"events"`
Gpugroup []HostsMetricGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
@@ -3316,6 +3318,7 @@ type PrepareHostForMaintenanceResponse struct {
Events string `json:"events"`
Gpugroup []PrepareHostForMaintenanceResponseGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
@@ -3469,6 +3472,7 @@ type ReconnectHostResponse struct {
Events string `json:"events"`
Gpugroup []ReconnectHostResponseGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
@@ -3863,6 +3867,7 @@ type UpdateHostResponse struct {
Events string `json:"events"`
Gpugroup []UpdateHostResponseGpugroup `json:"gpugroup"`
Hahost bool `json:"hahost"`
+ Hasannotations bool `json:"hasannotations"`
Hasenoughcapacity bool `json:"hasenoughcapacity"`
Hostha HAForHostResponse `json:"hostha"`
Hosttags string `json:"hosttags"`
diff --git a/cloudstack/HostService_mock.go b/cloudstack/HostService_mock.go
index acf7da2..afa82fe 100644
--- a/cloudstack/HostService_mock.go
+++ b/cloudstack/HostService_mock.go
@@ -440,17 +440,17 @@ func (mr *MockHostServiceIfaceMockRecorder) ListHostsMetrics(p interface{}) *gom
}
// NewAddBaremetalHostParams mocks base method.
-func (m *MockHostServiceIface) NewAddBaremetalHostParams(hypervisor, password, podid, url, username, zoneid string) *AddBaremetalHostParams {
+func (m *MockHostServiceIface) NewAddBaremetalHostParams(hypervisor, podid, url, zoneid string) *AddBaremetalHostParams {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "NewAddBaremetalHostParams", hypervisor, password, podid, url, username, zoneid)
+ ret := m.ctrl.Call(m, "NewAddBaremetalHostParams", hypervisor, podid, url, zoneid)
ret0, _ := ret[0].(*AddBaremetalHostParams)
return ret0
}
// NewAddBaremetalHostParams indicates an expected call of NewAddBaremetalHostParams.
-func (mr *MockHostServiceIfaceMockRecorder) NewAddBaremetalHostParams(hypervisor, password, podid, url, username, zoneid interface{}) *gomock.Call {
+func (mr *MockHostServiceIfaceMockRecorder) NewAddBaremetalHostParams(hypervisor, podid, url, zoneid interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBaremetalHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddBaremetalHostParams), hypervisor, password, podid, url, username, zoneid)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBaremetalHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddBaremetalHostParams), hypervisor, podid, url, zoneid)
}
// NewAddGloboDnsHostParams mocks base method.
@@ -468,17 +468,17 @@ func (mr *MockHostServiceIfaceMockRecorder) NewAddGloboDnsHostParams(password, p
}
// NewAddHostParams mocks base method.
-func (m *MockHostServiceIface) NewAddHostParams(hypervisor, password, podid, url, username, zoneid string) *AddHostParams {
+func (m *MockHostServiceIface) NewAddHostParams(hypervisor, podid, url, zoneid string) *AddHostParams {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "NewAddHostParams", hypervisor, password, podid, url, username, zoneid)
+ ret := m.ctrl.Call(m, "NewAddHostParams", hypervisor, podid, url, zoneid)
ret0, _ := ret[0].(*AddHostParams)
return ret0
}
// NewAddHostParams indicates an expected call of NewAddHostParams.
-func (mr *MockHostServiceIfaceMockRecorder) NewAddHostParams(hypervisor, password, podid, url, username, zoneid interface{}) *gomock.Call {
+func (mr *MockHostServiceIfaceMockRecorder) NewAddHostParams(hypervisor, podid, url, zoneid interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddHostParams), hypervisor, password, podid, url, username, zoneid)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddHostParams), hypervisor, podid, url, zoneid)
}
// NewAddSecondaryStorageParams mocks base method.
diff --git a/cloudstack/HostService_test.go b/cloudstack/HostService_test.go
index 2e542b4..9d529f3 100644
--- a/cloudstack/HostService_test.go
+++ b/cloudstack/HostService_test.go
@@ -38,9 +38,8 @@ func TestHostService_AddHost(t *testing.T) {
defer server.Close()
client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewAddHostParams("Simulator", "password",
- "5382edc2-e689-4074-bd67-0e1a236eb2bc", "http://sim/c0/h0",
- "root", "d4a81f75-5d92-415e-ab59-e85cc2ce56d9")
+ params := client.Host.NewAddHostParams("Simulator", "5382edc2-e689-4074-bd67-0e1a236eb2bc", "http://sim/c0/h0",
+ "d4a81f75-5d92-415e-ab59-e85cc2ce56d9")
resp, err := client.Host.AddHost(params)
if err != nil {
t.Errorf("Failed to add host due to: %v", err)
diff --git a/cloudstack/ISOService.go b/cloudstack/ISOService.go
index e913d24..db285a3 100644
--- a/cloudstack/ISOService.go
+++ b/cloudstack/ISOService.go
@@ -193,9 +193,11 @@ type AttachIsoResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -205,6 +207,7 @@ type AttachIsoResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -217,14 +220,17 @@ type AttachIsoResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []AttachIsoResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -456,9 +462,11 @@ type CopyIsoResponse struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -730,9 +738,11 @@ type DetachIsoResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -742,6 +752,7 @@ type DetachIsoResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -754,14 +765,17 @@ type DetachIsoResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []DetachIsoResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -1157,6 +1171,10 @@ func (p *ListIsosParams) toURLValues() url.Values {
if v, found := p.p["projectid"]; found {
u.Set("projectid", v.(string))
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["showremoved"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("showremoved", vv)
@@ -1403,6 +1421,21 @@ func (p *ListIsosParams) GetProjectid() (string, bool) {
return value, ok
}
+func (p *ListIsosParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListIsosParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListIsosParams) SetShowremoved(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1594,9 +1627,11 @@ type Iso struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -2024,9 +2059,11 @@ type RegisterIsoResponse struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -2401,9 +2438,11 @@ type UpdateIsoResponse struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
diff --git a/cloudstack/ImageStoreService.go b/cloudstack/ImageStoreService.go
index 65d4dc2..0e7769f 100644
--- a/cloudstack/ImageStoreService.go
+++ b/cloudstack/ImageStoreService.go
@@ -187,19 +187,20 @@ func (s *ImageStoreService) AddImageStore(p *AddImageStoreParams) (*AddImageStor
}
type AddImageStoreResponse struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type AddImageStoreS3Params struct {
@@ -446,19 +447,20 @@ func (s *ImageStoreService) AddImageStoreS3(p *AddImageStoreS3Params) (*AddImage
}
type AddImageStoreS3Response struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type CreateSecondaryStagingStoreParams struct {
@@ -592,19 +594,20 @@ func (s *ImageStoreService) CreateSecondaryStagingStore(p *CreateSecondaryStagin
}
type CreateSecondaryStagingStoreResponse struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type DeleteImageStoreParams struct {
@@ -1072,19 +1075,20 @@ type ListImageStoresResponse struct {
}
type ImageStore struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type ListSecondaryStagingStoresParams struct {
@@ -1357,19 +1361,20 @@ type ListSecondaryStagingStoresResponse struct {
}
type SecondaryStagingStore struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type UpdateCloudToUseObjectStoreParams struct {
@@ -1485,17 +1490,18 @@ func (s *ImageStoreService) UpdateCloudToUseObjectStore(p *UpdateCloudToUseObjec
}
type UpdateCloudToUseObjectStoreResponse struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
diff --git a/cloudstack/InternalLBService.go b/cloudstack/InternalLBService.go
index 6ee3b69..44922d0 100644
--- a/cloudstack/InternalLBService.go
+++ b/cloudstack/InternalLBService.go
@@ -888,6 +888,7 @@ type InternalLoadBalancerVM struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []InternalLoadBalancerVMHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
@@ -1025,6 +1026,7 @@ type StartInternalLoadBalancerVMResponse struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []StartInternalLoadBalancerVMResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
@@ -1181,6 +1183,7 @@ type StopInternalLoadBalancerVMResponse struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []StopInternalLoadBalancerVMResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
diff --git a/cloudstack/LDAPService.go b/cloudstack/LDAPService.go
index e38a46f..c437ba2 100644
--- a/cloudstack/LDAPService.go
+++ b/cloudstack/LDAPService.go
@@ -939,11 +939,13 @@ type LdapCreateAccountResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Defaultzoneid string `json:"defaultzoneid"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Groups []string `json:"groups"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -1005,6 +1007,7 @@ type LdapCreateAccountResponseUser struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
diff --git a/cloudstack/LimitService.go b/cloudstack/LimitService.go
index dd838cd..56e91e3 100644
--- a/cloudstack/LimitService.go
+++ b/cloudstack/LimitService.go
@@ -394,13 +394,37 @@ func (s *LimitService) ResetApiLimit(p *ResetApiLimitParams) (*ResetApiLimitResp
}
type ResetApiLimitResponse struct {
- Account string `json:"account"`
- Accountid string `json:"accountid"`
- ApiAllowed int `json:"apiAllowed"`
- ApiIssued int `json:"apiIssued"`
- ExpireAfter int64 `json:"expireAfter"`
+ Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
+ Success bool `json:"success"`
+}
+
+func (r *ResetApiLimitResponse) UnmarshalJSON(b []byte) error {
+ var m map[string]interface{}
+ err := json.Unmarshal(b, &m)
+ if err != nil {
+ return err
+ }
+
+ if success, ok := m["success"].(string); ok {
+ m["success"] = success == "true"
+ b, err = json.Marshal(m)
+ if err != nil {
+ return err
+ }
+ }
+
+ if ostypeid, ok := m["ostypeid"].(float64); ok {
+ m["ostypeid"] = strconv.Itoa(int(ostypeid))
+ b, err = json.Marshal(m)
+ if err != nil {
+ return err
+ }
+ }
+
+ type alias ResetApiLimitResponse
+ return json.Unmarshal(b, (*alias)(r))
}
type UpdateResourceCountParams struct {
diff --git a/examples/AddHost.go b/cloudstack/LimitService_test.go
similarity index 53%
copy from examples/AddHost.go
copy to cloudstack/LimitService_test.go
index 20b8fcf..81aa2e0 100644
--- a/examples/AddHost.go
+++ b/cloudstack/LimitService_test.go
@@ -17,28 +17,34 @@
// under the License.
//
-package main
+package cloudstack
import (
- "encoding/json"
"fmt"
- "github.com/apache/cloudstack-go/v2/cloudstack"
- "log"
+ "net/http"
+ "net/http/httptest"
+ "testing"
)
-func main() {
- cs := cloudstack.NewAsyncClient(ApiUrl, ApiKey, SecretKey, false)
- p := cs.Host.NewAddHostParams("Simulator", "password", PodId,
- "http://sim/c0/h0", "root", ZoneId)
- resp, err := cs.Host.AddHost(p)
+func TestLimitService_ResetApiLimit(t *testing.T) {
+ server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
+ apiName := "resetApiLimit"
+ response, err := ReadData(apiName, "LimitService")
+ if err != nil {
+ t.Errorf("Failed to read response data due to: %v", err)
+ }
+ fmt.Fprintln(writer, response[apiName])
+ }))
+ defer server.Close()
+ client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
+ params := client.Limit.NewResetApiLimitParams()
+ resp, err := client.Limit.ResetApiLimit(params)
if err != nil {
- fmt.Errorf("Failed to add host due to: %v", err)
+ t.Errorf("Failed to reset API Params limit due to: %v", err)
+ return
}
- b, err := json.MarshalIndent(resp, "", " ")
- if err != nil {
- log.Printf("%v", err)
- return
+ if resp == nil {
+ t.Errorf("Failed to register template")
}
- log.Printf("Host response : %v", string(b))
-}
\ No newline at end of file
+}
diff --git a/examples/AddHost.go b/cloudstack/NetworkACLService_test.go
similarity index 50%
copy from examples/AddHost.go
copy to cloudstack/NetworkACLService_test.go
index 20b8fcf..b9023aa 100644
--- a/examples/AddHost.go
+++ b/cloudstack/NetworkACLService_test.go
@@ -17,28 +17,32 @@
// under the License.
//
-package main
+package cloudstack
import (
- "encoding/json"
"fmt"
- "github.com/apache/cloudstack-go/v2/cloudstack"
- "log"
+ "net/http"
+ "net/http/httptest"
+ "testing"
)
-func main() {
- cs := cloudstack.NewAsyncClient(ApiUrl, ApiKey, SecretKey, false)
- p := cs.Host.NewAddHostParams("Simulator", "password", PodId,
- "http://sim/c0/h0", "root", ZoneId)
- resp, err := cs.Host.AddHost(p)
+func TestNetworkACLService_UpdateNetworkACLList(t *testing.T) {
+ server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
+ apiName := "updateNetworkACLList"
+ response, err := ParseAsyncResponse(apiName, "NetworkACLService", *request)
+ if err != nil {
+ t.Errorf("Failed to parse response, due to: %v", err)
+ }
+ fmt.Fprintln(writer, response)
+ }))
+ defer server.Close()
+ client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
+ params := client.NetworkACL.NewUpdateNetworkACLListParams("a31e11a0-57fe-41df-be7a-34d359673061")
+ resp, err := client.NetworkACL.UpdateNetworkACLList(params)
if err != nil {
- fmt.Errorf("Failed to add host due to: %v", err)
+ t.Errorf("Failed to update Network ACL list due to: %v", err)
}
-
- b, err := json.MarshalIndent(resp, "", " ")
- if err != nil {
- log.Printf("%v", err)
- return
+ if resp == nil {
+ t.Errorf("Failed to update Network ACL list ")
}
- log.Printf("Host response : %v", string(b))
-}
\ No newline at end of file
+}
diff --git a/cloudstack/NetworkOfferingService.go b/cloudstack/NetworkOfferingService.go
index 503a78b..7ae5bff 100644
--- a/cloudstack/NetworkOfferingService.go
+++ b/cloudstack/NetworkOfferingService.go
@@ -29,7 +29,7 @@ import (
type NetworkOfferingServiceIface interface {
CreateNetworkOffering(p *CreateNetworkOfferingParams) (*CreateNetworkOfferingResponse, error)
- NewCreateNetworkOfferingParams(displaytext string, guestiptype string, name string, supportedservices []string, traffictype string) *CreateNetworkOfferingParams
+ NewCreateNetworkOfferingParams(displaytext string, guestiptype string, name string, traffictype string) *CreateNetworkOfferingParams
DeleteNetworkOffering(p *DeleteNetworkOfferingParams) (*DeleteNetworkOfferingResponse, error)
NewDeleteNetworkOfferingParams(id string) *DeleteNetworkOfferingParams
ListNetworkOfferings(p *ListNetworkOfferingsParams) (*ListNetworkOfferingsResponse, error)
@@ -74,6 +74,10 @@ func (p *CreateNetworkOfferingParams) toURLValues() url.Values {
vv := strconv.FormatBool(v.(bool))
u.Set("egressdefaultpolicy", vv)
}
+ if v, found := p.p["enable"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("enable", vv)
+ }
if v, found := p.p["forvpc"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("forvpc", vv)
@@ -232,6 +236,21 @@ func (p *CreateNetworkOfferingParams) GetEgressdefaultpolicy() (bool, bool) {
return value, ok
}
+func (p *CreateNetworkOfferingParams) SetEnable(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["enable"] = v
+}
+
+func (p *CreateNetworkOfferingParams) GetEnable() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["enable"].(bool)
+ return value, ok
+}
+
func (p *CreateNetworkOfferingParams) SetForvpc(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -474,13 +493,12 @@ func (p *CreateNetworkOfferingParams) GetZoneid() ([]string, bool) {
// You should always use this function to get a new CreateNetworkOfferingParams instance,
// as then you are sure you have configured all required params
-func (s *NetworkOfferingService) NewCreateNetworkOfferingParams(displaytext string, guestiptype string, name string, supportedservices []string, traffictype string) *CreateNetworkOfferingParams {
+func (s *NetworkOfferingService) NewCreateNetworkOfferingParams(displaytext string, guestiptype string, name string, traffictype string) *CreateNetworkOfferingParams {
p := &CreateNetworkOfferingParams{}
p.p = make(map[string]interface{})
p.p["displaytext"] = displaytext
p.p["guestiptype"] = guestiptype
p.p["name"] = name
- p.p["supportedservices"] = supportedservices
p.p["traffictype"] = traffictype
return p
}
@@ -515,6 +533,7 @@ type CreateNetworkOfferingResponse struct {
Egressdefaultpolicy bool `json:"egressdefaultpolicy"`
Forvpc bool `json:"forvpc"`
Guestiptype string `json:"guestiptype"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Isdefault bool `json:"isdefault"`
Ispersistent bool `json:"ispersistent"`
@@ -1167,6 +1186,7 @@ type NetworkOffering struct {
Egressdefaultpolicy bool `json:"egressdefaultpolicy"`
Forvpc bool `json:"forvpc"`
Guestiptype string `json:"guestiptype"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Isdefault bool `json:"isdefault"`
Ispersistent bool `json:"ispersistent"`
@@ -1461,6 +1481,7 @@ type UpdateNetworkOfferingResponse struct {
Egressdefaultpolicy bool `json:"egressdefaultpolicy"`
Forvpc bool `json:"forvpc"`
Guestiptype string `json:"guestiptype"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Isdefault bool `json:"isdefault"`
Ispersistent bool `json:"ispersistent"`
diff --git a/cloudstack/NetworkOfferingService_mock.go b/cloudstack/NetworkOfferingService_mock.go
index 36a020d..aeda2fb 100644
--- a/cloudstack/NetworkOfferingService_mock.go
+++ b/cloudstack/NetworkOfferingService_mock.go
@@ -161,17 +161,17 @@ func (mr *MockNetworkOfferingServiceIfaceMockRecorder) ListNetworkOfferings(p in
}
// NewCreateNetworkOfferingParams mocks base method.
-func (m *MockNetworkOfferingServiceIface) NewCreateNetworkOfferingParams(displaytext, guestiptype, name string, supportedservices []string, traffictype string) *CreateNetworkOfferingParams {
+func (m *MockNetworkOfferingServiceIface) NewCreateNetworkOfferingParams(displaytext, guestiptype, name, traffictype string) *CreateNetworkOfferingParams {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "NewCreateNetworkOfferingParams", displaytext, guestiptype, name, supportedservices, traffictype)
+ ret := m.ctrl.Call(m, "NewCreateNetworkOfferingParams", displaytext, guestiptype, name, traffictype)
ret0, _ := ret[0].(*CreateNetworkOfferingParams)
return ret0
}
// NewCreateNetworkOfferingParams indicates an expected call of NewCreateNetworkOfferingParams.
-func (mr *MockNetworkOfferingServiceIfaceMockRecorder) NewCreateNetworkOfferingParams(displaytext, guestiptype, name, supportedservices, traffictype interface{}) *gomock.Call {
+func (mr *MockNetworkOfferingServiceIfaceMockRecorder) NewCreateNetworkOfferingParams(displaytext, guestiptype, name, traffictype interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateNetworkOfferingParams", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).NewCreateNetworkOfferingParams), displaytext, guestiptype, name, supportedservices, traffictype)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateNetworkOfferingParams", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).NewCreateNetworkOfferingParams), displaytext, guestiptype, name, traffictype)
}
// NewDeleteNetworkOfferingParams mocks base method.
diff --git a/cloudstack/NetworkOfferingService_test.go b/cloudstack/NetworkOfferingService_test.go
index 18ddf4e..98e5f00 100644
--- a/cloudstack/NetworkOfferingService_test.go
+++ b/cloudstack/NetworkOfferingService_test.go
@@ -37,7 +37,7 @@ func TestNetworkOfferingService_CreateNetworkOffering(t *testing.T) {
}))
defer server.Close()
client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.NetworkOffering.NewCreateNetworkOfferingParams("testNetOffering", "L2", "testNetOffering", []string{}, "Guest")
+ params := client.NetworkOffering.NewCreateNetworkOfferingParams("testNetOffering", "L2", "testNetOffering", "Guest")
resp, err := client.NetworkOffering.CreateNetworkOffering(params)
if err != nil {
t.Errorf("Failed to create network offering due to: %v", err)
diff --git a/cloudstack/NetworkService.go b/cloudstack/NetworkService.go
index dac9718..914c2a1 100644
--- a/cloudstack/NetworkService.go
+++ b/cloudstack/NetworkService.go
@@ -459,6 +459,12 @@ func (p *CreateNetworkParams) toURLValues() url.Values {
if v, found := p.p["projectid"]; found {
u.Set("projectid", v.(string))
}
+ if v, found := p.p["routerip"]; found {
+ u.Set("routerip", v.(string))
+ }
+ if v, found := p.p["routeripv6"]; found {
+ u.Set("routeripv6", v.(string))
+ }
if v, found := p.p["startip"]; found {
u.Set("startip", v.(string))
}
@@ -811,6 +817,36 @@ func (p *CreateNetworkParams) GetProjectid() (string, bool) {
return value, ok
}
+func (p *CreateNetworkParams) SetRouterip(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["routerip"] = v
+}
+
+func (p *CreateNetworkParams) GetRouterip() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["routerip"].(string)
+ return value, ok
+}
+
+func (p *CreateNetworkParams) SetRouteripv6(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["routeripv6"] = v
+}
+
+func (p *CreateNetworkParams) GetRouteripv6() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["routeripv6"].(string)
+ return value, ok
+}
+
func (p *CreateNetworkParams) SetStartip(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -941,6 +977,7 @@ type CreateNetworkResponse struct {
Broadcasturi string `json:"broadcasturi"`
Canusefordeploy bool `json:"canusefordeploy"`
Cidr string `json:"cidr"`
+ Created string `json:"created"`
Details map[string]string `json:"details"`
Displaynetwork bool `json:"displaynetwork"`
Displaytext string `json:"displaytext"`
@@ -950,6 +987,8 @@ type CreateNetworkResponse struct {
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ip6cidr string `json:"ip6cidr"`
Ip6gateway string `json:"ip6gateway"`
@@ -970,10 +1009,12 @@ type CreateNetworkResponse struct {
Physicalnetworkid string `json:"physicalnetworkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
+ Receivedbytes int64 `json:"receivedbytes"`
Redundantrouter bool `json:"redundantrouter"`
Related string `json:"related"`
Reservediprange string `json:"reservediprange"`
Restartrequired bool `json:"restartrequired"`
+ Sentbytes int64 `json:"sentbytes"`
Service []CreateNetworkResponseService `json:"service"`
Specifyipranges bool `json:"specifyipranges"`
State string `json:"state"`
@@ -2354,6 +2395,7 @@ type NetscalerLoadBalancerNetwork struct {
Broadcasturi string `json:"broadcasturi"`
Canusefordeploy bool `json:"canusefordeploy"`
Cidr string `json:"cidr"`
+ Created string `json:"created"`
Details map[string]string `json:"details"`
Displaynetwork bool `json:"displaynetwork"`
Displaytext string `json:"displaytext"`
@@ -2363,6 +2405,8 @@ type NetscalerLoadBalancerNetwork struct {
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ip6cidr string `json:"ip6cidr"`
Ip6gateway string `json:"ip6gateway"`
@@ -2383,10 +2427,12 @@ type NetscalerLoadBalancerNetwork struct {
Physicalnetworkid string `json:"physicalnetworkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
+ Receivedbytes int64 `json:"receivedbytes"`
Redundantrouter bool `json:"redundantrouter"`
Related string `json:"related"`
Reservediprange string `json:"reservediprange"`
Restartrequired bool `json:"restartrequired"`
+ Sentbytes int64 `json:"sentbytes"`
Service []NetscalerLoadBalancerNetworkService `json:"service"`
Specifyipranges bool `json:"specifyipranges"`
State string `json:"state"`
@@ -2794,6 +2840,10 @@ func (p *ListNetworksParams) toURLValues() url.Values {
vv := strconv.FormatBool(v.(bool))
u.Set("restartrequired", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["specifyipranges"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("specifyipranges", vv)
@@ -3079,6 +3129,21 @@ func (p *ListNetworksParams) GetRestartrequired() (bool, bool) {
return value, ok
}
+func (p *ListNetworksParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListNetworksParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListNetworksParams) SetSpecifyipranges(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -3304,6 +3369,7 @@ type Network struct {
Broadcasturi string `json:"broadcasturi"`
Canusefordeploy bool `json:"canusefordeploy"`
Cidr string `json:"cidr"`
+ Created string `json:"created"`
Details map[string]string `json:"details"`
Displaynetwork bool `json:"displaynetwork"`
Displaytext string `json:"displaytext"`
@@ -3313,6 +3379,8 @@ type Network struct {
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ip6cidr string `json:"ip6cidr"`
Ip6gateway string `json:"ip6gateway"`
@@ -3333,10 +3401,12 @@ type Network struct {
Physicalnetworkid string `json:"physicalnetworkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
+ Receivedbytes int64 `json:"receivedbytes"`
Redundantrouter bool `json:"redundantrouter"`
Related string `json:"related"`
Reservediprange string `json:"reservediprange"`
Restartrequired bool `json:"restartrequired"`
+ Sentbytes int64 `json:"sentbytes"`
Service []NetworkServiceInternal `json:"service"`
Specifyipranges bool `json:"specifyipranges"`
State string `json:"state"`
@@ -3536,6 +3606,7 @@ type NiciraNvpDeviceNetwork struct {
Broadcasturi string `json:"broadcasturi"`
Canusefordeploy bool `json:"canusefordeploy"`
Cidr string `json:"cidr"`
+ Created string `json:"created"`
Details map[string]string `json:"details"`
Displaynetwork bool `json:"displaynetwork"`
Displaytext string `json:"displaytext"`
@@ -3545,6 +3616,8 @@ type NiciraNvpDeviceNetwork struct {
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ip6cidr string `json:"ip6cidr"`
Ip6gateway string `json:"ip6gateway"`
@@ -3565,10 +3638,12 @@ type NiciraNvpDeviceNetwork struct {
Physicalnetworkid string `json:"physicalnetworkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
+ Receivedbytes int64 `json:"receivedbytes"`
Redundantrouter bool `json:"redundantrouter"`
Related string `json:"related"`
Reservediprange string `json:"reservediprange"`
Restartrequired bool `json:"restartrequired"`
+ Sentbytes int64 `json:"sentbytes"`
Service []NiciraNvpDeviceNetworkService `json:"service"`
Specifyipranges bool `json:"specifyipranges"`
State string `json:"state"`
@@ -3887,6 +3962,7 @@ type PaloAltoFirewallNetwork struct {
Broadcasturi string `json:"broadcasturi"`
Canusefordeploy bool `json:"canusefordeploy"`
Cidr string `json:"cidr"`
+ Created string `json:"created"`
Details map[string]string `json:"details"`
Displaynetwork bool `json:"displaynetwork"`
Displaytext string `json:"displaytext"`
@@ -3896,6 +3972,8 @@ type PaloAltoFirewallNetwork struct {
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ip6cidr string `json:"ip6cidr"`
Ip6gateway string `json:"ip6gateway"`
@@ -3916,10 +3994,12 @@ type PaloAltoFirewallNetwork struct {
Physicalnetworkid string `json:"physicalnetworkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
+ Receivedbytes int64 `json:"receivedbytes"`
Redundantrouter bool `json:"redundantrouter"`
Related string `json:"related"`
Reservediprange string `json:"reservediprange"`
Restartrequired bool `json:"restartrequired"`
+ Sentbytes int64 `json:"sentbytes"`
Service []PaloAltoFirewallNetworkService `json:"service"`
Specifyipranges bool `json:"specifyipranges"`
State string `json:"state"`
@@ -4747,11 +4827,6 @@ func (s *NetworkService) RestartNetwork(p *RestartNetworkParams) (*RestartNetwor
return nil, err
}
- b, err = getRawValue(b)
- if err != nil {
- return nil, err
- }
-
if err := json.Unmarshal(b, &r); err != nil {
return nil, err
}
@@ -4761,40 +4836,10 @@ func (s *NetworkService) RestartNetwork(p *RestartNetworkParams) (*RestartNetwor
}
type RestartNetworkResponse struct {
- Account string `json:"account"`
- Allocated string `json:"allocated"`
- Associatednetworkid string `json:"associatednetworkid"`
- Associatednetworkname string `json:"associatednetworkname"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Fordisplay bool `json:"fordisplay"`
- Forvirtualnetwork bool `json:"forvirtualnetwork"`
- Id string `json:"id"`
- Ipaddress string `json:"ipaddress"`
- Isportable bool `json:"isportable"`
- Issourcenat bool `json:"issourcenat"`
- Isstaticnat bool `json:"isstaticnat"`
- Issystem bool `json:"issystem"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Networkid string `json:"networkid"`
- Networkname string `json:"networkname"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Purpose string `json:"purpose"`
- State string `json:"state"`
- Tags []Tags `json:"tags"`
- Virtualmachinedisplayname string `json:"virtualmachinedisplayname"`
- Virtualmachineid string `json:"virtualmachineid"`
- Virtualmachinename string `json:"virtualmachinename"`
- Vlanid string `json:"vlanid"`
- Vlanname string `json:"vlanname"`
- Vmipaddress string `json:"vmipaddress"`
- Vpcid string `json:"vpcid"`
- Vpcname string `json:"vpcname"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Displaytext string `json:"displaytext"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Success bool `json:"success"`
}
type UpdateNetworkParams struct {
@@ -5083,6 +5128,7 @@ type UpdateNetworkResponse struct {
Broadcasturi string `json:"broadcasturi"`
Canusefordeploy bool `json:"canusefordeploy"`
Cidr string `json:"cidr"`
+ Created string `json:"created"`
Details map[string]string `json:"details"`
Displaynetwork bool `json:"displaynetwork"`
Displaytext string `json:"displaytext"`
@@ -5092,6 +5138,8 @@ type UpdateNetworkResponse struct {
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ip6cidr string `json:"ip6cidr"`
Ip6gateway string `json:"ip6gateway"`
@@ -5112,10 +5160,12 @@ type UpdateNetworkResponse struct {
Physicalnetworkid string `json:"physicalnetworkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
+ Receivedbytes int64 `json:"receivedbytes"`
Redundantrouter bool `json:"redundantrouter"`
Related string `json:"related"`
Reservediprange string `json:"reservediprange"`
Restartrequired bool `json:"restartrequired"`
+ Sentbytes int64 `json:"sentbytes"`
Service []UpdateNetworkResponseService `json:"service"`
Specifyipranges bool `json:"specifyipranges"`
State string `json:"state"`
diff --git a/cloudstack/NetworkService_test.go b/cloudstack/NetworkService_test.go
index faf21f1..18f7508 100644
--- a/cloudstack/NetworkService_test.go
+++ b/cloudstack/NetworkService_test.go
@@ -79,7 +79,6 @@ func TestNetworkService_DeleteNetwork(t *testing.T) {
if err != nil {
t.Errorf("Failed to parse response, due to: %v", err)
}
-
fmt.Fprintf(writer, response)
}))
defer server.Close()
diff --git a/cloudstack/NicService.go b/cloudstack/NicService.go
index 470dfa5..08463e5 100644
--- a/cloudstack/NicService.go
+++ b/cloudstack/NicService.go
@@ -541,9 +541,11 @@ type UpdateVmNicIpResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -553,6 +555,7 @@ type UpdateVmNicIpResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -565,14 +568,17 @@ type UpdateVmNicIpResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []UpdateVmNicIpResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
diff --git a/cloudstack/PodService.go b/cloudstack/PodService.go
index a0a4dab..7766d8d 100644
--- a/cloudstack/PodService.go
+++ b/cloudstack/PodService.go
@@ -219,7 +219,9 @@ type CreatePodResponse struct {
Endip []string `json:"endip"`
Forsystemvms []string `json:"forsystemvms"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
+ Ipranges []CreatePodResponseIpranges `json:"ipranges"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
@@ -230,6 +232,13 @@ type CreatePodResponse struct {
Zonename string `json:"zonename"`
}
+type CreatePodResponseIpranges struct {
+ Endip string `json:"endip"`
+ Forsystemvms string `json:"forsystemvms"`
+ Startip string `json:"startip"`
+ Vlanid string `json:"vlanid"`
+}
+
type CreatePodResponseCapacity struct {
Capacityallocated int64 `json:"capacityallocated"`
Capacitytotal int64 `json:"capacitytotal"`
@@ -910,7 +919,9 @@ type Pod struct {
Endip []string `json:"endip"`
Forsystemvms []string `json:"forsystemvms"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
+ Ipranges []PodIpranges `json:"ipranges"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
@@ -921,6 +932,13 @@ type Pod struct {
Zonename string `json:"zonename"`
}
+type PodIpranges struct {
+ Endip string `json:"endip"`
+ Forsystemvms string `json:"forsystemvms"`
+ Startip string `json:"startip"`
+ Vlanid string `json:"vlanid"`
+}
+
type PodCapacity struct {
Capacityallocated int64 `json:"capacityallocated"`
Capacitytotal int64 `json:"capacitytotal"`
@@ -1180,7 +1198,9 @@ type UpdatePodResponse struct {
Endip []string `json:"endip"`
Forsystemvms []string `json:"forsystemvms"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
+ Ipranges []UpdatePodResponseIpranges `json:"ipranges"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
@@ -1191,6 +1211,13 @@ type UpdatePodResponse struct {
Zonename string `json:"zonename"`
}
+type UpdatePodResponseIpranges struct {
+ Endip string `json:"endip"`
+ Forsystemvms string `json:"forsystemvms"`
+ Startip string `json:"startip"`
+ Vlanid string `json:"vlanid"`
+}
+
type UpdatePodResponseCapacity struct {
Capacityallocated int64 `json:"capacityallocated"`
Capacitytotal int64 `json:"capacitytotal"`
diff --git a/cloudstack/PoolService.go b/cloudstack/PoolService.go
index f6191f3..09cecee 100644
--- a/cloudstack/PoolService.go
+++ b/cloudstack/PoolService.go
@@ -334,6 +334,7 @@ type CreateStoragePoolResponse struct {
Disksizeallocated int64 `json:"disksizeallocated"`
Disksizetotal int64 `json:"disksizetotal"`
Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
@@ -581,6 +582,7 @@ type FindStoragePoolsForMigrationResponse struct {
Disksizeallocated int64 `json:"disksizeallocated"`
Disksizetotal int64 `json:"disksizetotal"`
Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
@@ -934,6 +936,7 @@ type StoragePool struct {
Disksizeallocated int64 `json:"disksizeallocated"`
Disksizetotal int64 `json:"disksizetotal"`
Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
@@ -1112,6 +1115,7 @@ type UpdateStoragePoolResponse struct {
Disksizeallocated int64 `json:"disksizeallocated"`
Disksizetotal int64 `json:"disksizetotal"`
Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
diff --git a/cloudstack/ProjectService.go b/cloudstack/ProjectService.go
index ac0e38c..d08a88f 100644
--- a/cloudstack/ProjectService.go
+++ b/cloudstack/ProjectService.go
@@ -50,6 +50,14 @@ type ProjectServiceIface interface {
NewUpdateProjectParams(id string) *UpdateProjectParams
UpdateProjectInvitation(p *UpdateProjectInvitationParams) (*UpdateProjectInvitationResponse, error)
NewUpdateProjectInvitationParams(projectid string) *UpdateProjectInvitationParams
+ ListProjectRolePermissions(p *ListProjectRolePermissionsParams) (*ListProjectRolePermissionsResponse, error)
+ NewListProjectRolePermissionsParams(projectid string) *ListProjectRolePermissionsParams
+ CreateProjectRolePermission(p *CreateProjectRolePermissionParams) (*CreateProjectRolePermissionResponse, error)
+ NewCreateProjectRolePermissionParams(permission string, projectid string, projectroleid string, rule string) *CreateProjectRolePermissionParams
+ UpdateProjectRolePermission(p *UpdateProjectRolePermissionParams) (*UpdateProjectRolePermissionResponse, error)
+ NewUpdateProjectRolePermissionParams(projectid string, projectroleid string) *UpdateProjectRolePermissionParams
+ DeleteProjectRolePermission(p *DeleteProjectRolePermissionParams) (*DeleteProjectRolePermissionResponse, error)
+ NewDeleteProjectRolePermissionParams(id string, projectid string) *DeleteProjectRolePermissionParams
}
type ActivateProjectParams struct {
@@ -130,9 +138,11 @@ type ActivateProjectResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -344,9 +354,11 @@ type CreateProjectResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -398,12 +410,31 @@ func (p *DeleteProjectParams) toURLValues() url.Values {
if p.p == nil {
return u
}
+ if v, found := p.p["cleanup"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("cleanup", vv)
+ }
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
+func (p *DeleteProjectParams) SetCleanup(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["cleanup"] = v
+}
+
+func (p *DeleteProjectParams) GetCleanup() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["cleanup"].(bool)
+ return value, ok
+}
+
func (p *DeleteProjectParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -896,6 +927,10 @@ func (p *ListProjectsParams) toURLValues() url.Values {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["state"]; found {
u.Set("state", v.(string))
}
@@ -1077,6 +1112,21 @@ func (p *ListProjectsParams) GetPagesize() (int, bool) {
return value, ok
}
+func (p *ListProjectsParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListProjectsParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListProjectsParams) SetState(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1237,9 +1287,11 @@ type Project struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -1360,9 +1412,11 @@ type SuspendProjectResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -1574,9 +1628,11 @@ type UpdateProjectResponse struct {
Cpuavailable string `json:"cpuavailable"`
Cpulimit string `json:"cpulimit"`
Cputotal int64 `json:"cputotal"`
+ Created string `json:"created"`
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Ipavailable string `json:"ipavailable"`
Iplimit string `json:"iplimit"`
@@ -1767,3 +1823,502 @@ type UpdateProjectInvitationResponse struct {
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
+
+type ListProjectRolePermissionsParams struct {
+ p map[string]interface{}
+}
+
+func (p *ListProjectRolePermissionsParams) toURLValues() url.Values {
+ u := url.Values{}
+ if p.p == nil {
+ return u
+ }
+ if v, found := p.p["projectid"]; found {
+ u.Set("projectid", v.(string))
+ }
+ if v, found := p.p["projectroleid"]; found {
+ u.Set("projectroleid", v.(string))
+ }
+ return u
+}
+
+func (p *ListProjectRolePermissionsParams) SetProjectid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectid"] = v
+}
+
+func (p *ListProjectRolePermissionsParams) GetProjectid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectid"].(string)
+ return value, ok
+}
+
+func (p *ListProjectRolePermissionsParams) SetProjectroleid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectroleid"] = v
+}
+
+func (p *ListProjectRolePermissionsParams) GetProjectroleid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectroleid"].(string)
+ return value, ok
+}
+
+// You should always use this function to get a new ListProjectRolePermissionsParams instance,
+// as then you are sure you have configured all required params
+func (s *ProjectService) NewListProjectRolePermissionsParams(projectid string) *ListProjectRolePermissionsParams {
+ p := &ListProjectRolePermissionsParams{}
+ p.p = make(map[string]interface{})
+ p.p["projectid"] = projectid
+ return p
+}
+
+// Lists a project's project role permissions
+func (s *ProjectService) ListProjectRolePermissions(p *ListProjectRolePermissionsParams) (*ListProjectRolePermissionsResponse, error) {
+ resp, err := s.cs.newRequest("listProjectRolePermissions", p.toURLValues())
+ if err != nil {
+ return nil, err
+ }
+
+ var r ListProjectRolePermissionsResponse
+ if err := json.Unmarshal(resp, &r); err != nil {
+ return nil, err
+ }
+
+ return &r, nil
+}
+
+type ListProjectRolePermissionsResponse struct {
+ Count int `json:"count"`
+ ProjectRolePermissions []*ProjectRolePermission `json:"projectrolepermission"`
+}
+
+type ProjectRolePermission struct {
+ Description string `json:"description"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Permission string `json:"permission"`
+ Projectid string `json:"projectid"`
+ Projectroleid string `json:"projectroleid"`
+ Projectrolename string `json:"projectrolename"`
+ Rule string `json:"rule"`
+}
+
+type CreateProjectRolePermissionParams struct {
+ p map[string]interface{}
+}
+
+func (p *CreateProjectRolePermissionParams) toURLValues() url.Values {
+ u := url.Values{}
+ if p.p == nil {
+ return u
+ }
+ if v, found := p.p["description"]; found {
+ u.Set("description", v.(string))
+ }
+ if v, found := p.p["permission"]; found {
+ u.Set("permission", v.(string))
+ }
+ if v, found := p.p["projectid"]; found {
+ u.Set("projectid", v.(string))
+ }
+ if v, found := p.p["projectroleid"]; found {
+ u.Set("projectroleid", v.(string))
+ }
+ if v, found := p.p["rule"]; found {
+ u.Set("rule", v.(string))
+ }
+ return u
+}
+
+func (p *CreateProjectRolePermissionParams) SetDescription(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["description"] = v
+}
+
+func (p *CreateProjectRolePermissionParams) GetDescription() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["description"].(string)
+ return value, ok
+}
+
+func (p *CreateProjectRolePermissionParams) SetPermission(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["permission"] = v
+}
+
+func (p *CreateProjectRolePermissionParams) GetPermission() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["permission"].(string)
+ return value, ok
+}
+
+func (p *CreateProjectRolePermissionParams) SetProjectid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectid"] = v
+}
+
+func (p *CreateProjectRolePermissionParams) GetProjectid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectid"].(string)
+ return value, ok
+}
+
+func (p *CreateProjectRolePermissionParams) SetProjectroleid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectroleid"] = v
+}
+
+func (p *CreateProjectRolePermissionParams) GetProjectroleid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectroleid"].(string)
+ return value, ok
+}
+
+func (p *CreateProjectRolePermissionParams) SetRule(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["rule"] = v
+}
+
+func (p *CreateProjectRolePermissionParams) GetRule() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["rule"].(string)
+ return value, ok
+}
+
+// You should always use this function to get a new CreateProjectRolePermissionParams instance,
+// as then you are sure you have configured all required params
+func (s *ProjectService) NewCreateProjectRolePermissionParams(permission string, projectid string, projectroleid string, rule string) *CreateProjectRolePermissionParams {
+ p := &CreateProjectRolePermissionParams{}
+ p.p = make(map[string]interface{})
+ p.p["permission"] = permission
+ p.p["projectid"] = projectid
+ p.p["projectroleid"] = projectroleid
+ p.p["rule"] = rule
+ return p
+}
+
+// Adds API permissions to a project role
+func (s *ProjectService) CreateProjectRolePermission(p *CreateProjectRolePermissionParams) (*CreateProjectRolePermissionResponse, error) {
+ resp, err := s.cs.newRequest("createProjectRolePermission", p.toURLValues())
+ if err != nil {
+ return nil, err
+ }
+
+ var r CreateProjectRolePermissionResponse
+ if err := json.Unmarshal(resp, &r); err != nil {
+ return nil, err
+ }
+
+ return &r, nil
+}
+
+type CreateProjectRolePermissionResponse struct {
+ Description string `json:"description"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Permission string `json:"permission"`
+ Projectid string `json:"projectid"`
+ Projectroleid string `json:"projectroleid"`
+ Projectrolename string `json:"projectrolename"`
+ Rule string `json:"rule"`
+}
+
+type UpdateProjectRolePermissionParams struct {
+ p map[string]interface{}
+}
+
+func (p *UpdateProjectRolePermissionParams) toURLValues() url.Values {
+ u := url.Values{}
+ if p.p == nil {
+ return u
+ }
+ if v, found := p.p["permission"]; found {
+ u.Set("permission", v.(string))
+ }
+ if v, found := p.p["projectid"]; found {
+ u.Set("projectid", v.(string))
+ }
+ if v, found := p.p["projectroleid"]; found {
+ u.Set("projectroleid", v.(string))
+ }
+ if v, found := p.p["projectrolepermissionid"]; found {
+ u.Set("projectrolepermissionid", v.(string))
+ }
+ if v, found := p.p["ruleorder"]; found {
+ vv := strings.Join(v.([]string), ",")
+ u.Set("ruleorder", vv)
+ }
+ return u
+}
+
+func (p *UpdateProjectRolePermissionParams) SetPermission(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["permission"] = v
+}
+
+func (p *UpdateProjectRolePermissionParams) GetPermission() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["permission"].(string)
+ return value, ok
+}
+
+func (p *UpdateProjectRolePermissionParams) SetProjectid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectid"] = v
+}
+
+func (p *UpdateProjectRolePermissionParams) GetProjectid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectid"].(string)
+ return value, ok
+}
+
+func (p *UpdateProjectRolePermissionParams) SetProjectroleid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectroleid"] = v
+}
+
+func (p *UpdateProjectRolePermissionParams) GetProjectroleid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectroleid"].(string)
+ return value, ok
+}
+
+func (p *UpdateProjectRolePermissionParams) SetProjectrolepermissionid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectrolepermissionid"] = v
+}
+
+func (p *UpdateProjectRolePermissionParams) GetProjectrolepermissionid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectrolepermissionid"].(string)
+ return value, ok
+}
+
+func (p *UpdateProjectRolePermissionParams) SetRuleorder(v []string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["ruleorder"] = v
+}
+
+func (p *UpdateProjectRolePermissionParams) GetRuleorder() ([]string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["ruleorder"].([]string)
+ return value, ok
+}
+
+// You should always use this function to get a new UpdateProjectRolePermissionParams instance,
+// as then you are sure you have configured all required params
+func (s *ProjectService) NewUpdateProjectRolePermissionParams(projectid string, projectroleid string) *UpdateProjectRolePermissionParams {
+ p := &UpdateProjectRolePermissionParams{}
+ p.p = make(map[string]interface{})
+ p.p["projectid"] = projectid
+ p.p["projectroleid"] = projectroleid
+ return p
+}
+
+// Updates a project role permission and/or order
+func (s *ProjectService) UpdateProjectRolePermission(p *UpdateProjectRolePermissionParams) (*UpdateProjectRolePermissionResponse, error) {
+ resp, err := s.cs.newRequest("updateProjectRolePermission", p.toURLValues())
+ if err != nil {
+ return nil, err
+ }
+
+ var r UpdateProjectRolePermissionResponse
+ if err := json.Unmarshal(resp, &r); err != nil {
+ return nil, err
+ }
+
+ return &r, nil
+}
+
+type UpdateProjectRolePermissionResponse struct {
+ Displaytext string `json:"displaytext"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Success bool `json:"success"`
+}
+
+func (r *UpdateProjectRolePermissionResponse) UnmarshalJSON(b []byte) error {
+ var m map[string]interface{}
+ err := json.Unmarshal(b, &m)
+ if err != nil {
+ return err
+ }
+
+ if success, ok := m["success"].(string); ok {
+ m["success"] = success == "true"
+ b, err = json.Marshal(m)
+ if err != nil {
+ return err
+ }
+ }
+
+ if ostypeid, ok := m["ostypeid"].(float64); ok {
+ m["ostypeid"] = strconv.Itoa(int(ostypeid))
+ b, err = json.Marshal(m)
+ if err != nil {
+ return err
+ }
+ }
+
+ type alias UpdateProjectRolePermissionResponse
+ return json.Unmarshal(b, (*alias)(r))
+}
+
+type DeleteProjectRolePermissionParams struct {
+ p map[string]interface{}
+}
+
+func (p *DeleteProjectRolePermissionParams) toURLValues() url.Values {
+ u := url.Values{}
+ if p.p == nil {
+ return u
+ }
+ if v, found := p.p["id"]; found {
+ u.Set("id", v.(string))
+ }
+ if v, found := p.p["projectid"]; found {
+ u.Set("projectid", v.(string))
+ }
+ return u
+}
+
+func (p *DeleteProjectRolePermissionParams) SetId(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["id"] = v
+}
+
+func (p *DeleteProjectRolePermissionParams) GetId() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["id"].(string)
+ return value, ok
+}
+
+func (p *DeleteProjectRolePermissionParams) SetProjectid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["projectid"] = v
+}
+
+func (p *DeleteProjectRolePermissionParams) GetProjectid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["projectid"].(string)
+ return value, ok
+}
+
+// You should always use this function to get a new DeleteProjectRolePermissionParams instance,
+// as then you are sure you have configured all required params
+func (s *ProjectService) NewDeleteProjectRolePermissionParams(id string, projectid string) *DeleteProjectRolePermissionParams {
+ p := &DeleteProjectRolePermissionParams{}
+ p.p = make(map[string]interface{})
+ p.p["id"] = id
+ p.p["projectid"] = projectid
+ return p
+}
+
+// Deletes a project role permission in the project
+func (s *ProjectService) DeleteProjectRolePermission(p *DeleteProjectRolePermissionParams) (*DeleteProjectRolePermissionResponse, error) {
+ resp, err := s.cs.newRequest("deleteProjectRolePermission", p.toURLValues())
+ if err != nil {
+ return nil, err
+ }
+
+ var r DeleteProjectRolePermissionResponse
+ if err := json.Unmarshal(resp, &r); err != nil {
+ return nil, err
+ }
+
+ return &r, nil
+}
+
+type DeleteProjectRolePermissionResponse struct {
+ Displaytext string `json:"displaytext"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Success bool `json:"success"`
+}
+
+func (r *DeleteProjectRolePermissionResponse) UnmarshalJSON(b []byte) error {
+ var m map[string]interface{}
+ err := json.Unmarshal(b, &m)
+ if err != nil {
+ return err
+ }
+
+ if success, ok := m["success"].(string); ok {
+ m["success"] = success == "true"
+ b, err = json.Marshal(m)
+ if err != nil {
+ return err
+ }
+ }
+
+ if ostypeid, ok := m["ostypeid"].(float64); ok {
+ m["ostypeid"] = strconv.Itoa(int(ostypeid))
+ b, err = json.Marshal(m)
+ if err != nil {
+ return err
+ }
+ }
+
+ type alias DeleteProjectRolePermissionResponse
+ return json.Unmarshal(b, (*alias)(r))
+}
diff --git a/cloudstack/ProjectService_mock.go b/cloudstack/ProjectService_mock.go
index 2222cc6..d511fac 100644
--- a/cloudstack/ProjectService_mock.go
+++ b/cloudstack/ProjectService_mock.go
@@ -82,6 +82,21 @@ func (mr *MockProjectServiceIfaceMockRecorder) CreateProject(p interface{}) *gom
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateProject", reflect.TypeOf((*MockProjectServiceIface)(nil).CreateProject), p)
}
+// CreateProjectRolePermission mocks base method.
+func (m *MockProjectServiceIface) CreateProjectRolePermission(p *CreateProjectRolePermissionParams) (*CreateProjectRolePermissionResponse, error) {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "CreateProjectRolePermission", p)
+ ret0, _ := ret[0].(*CreateProjectRolePermissionResponse)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
+}
+
+// CreateProjectRolePermission indicates an expected call of CreateProjectRolePermission.
+func (mr *MockProjectServiceIfaceMockRecorder) CreateProjectRolePermission(p interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateProjectRolePermission", reflect.TypeOf((*MockProjectServiceIface)(nil).CreateProjectRolePermission), p)
+}
+
// DeleteProject mocks base method.
func (m *MockProjectServiceIface) DeleteProject(p *DeleteProjectParams) (*DeleteProjectResponse, error) {
m.ctrl.T.Helper()
@@ -112,6 +127,21 @@ func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectInvitation(p interfa
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProjectInvitation", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteProjectInvitation), p)
}
+// DeleteProjectRolePermission mocks base method.
+func (m *MockProjectServiceIface) DeleteProjectRolePermission(p *DeleteProjectRolePermissionParams) (*DeleteProjectRolePermissionResponse, error) {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "DeleteProjectRolePermission", p)
+ ret0, _ := ret[0].(*DeleteProjectRolePermissionResponse)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
+}
+
+// DeleteProjectRolePermission indicates an expected call of DeleteProjectRolePermission.
+func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectRolePermission(p interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProjectRolePermission", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteProjectRolePermission), p)
+}
+
// GetProjectByID mocks base method.
func (m *MockProjectServiceIface) GetProjectByID(id string, opts ...OptionFunc) (*Project, int, error) {
m.ctrl.T.Helper()
@@ -211,6 +241,21 @@ func (mr *MockProjectServiceIfaceMockRecorder) ListProjectInvitations(p interfac
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectInvitations", reflect.TypeOf((*MockProjectServiceIface)(nil).ListProjectInvitations), p)
}
+// ListProjectRolePermissions mocks base method.
+func (m *MockProjectServiceIface) ListProjectRolePermissions(p *ListProjectRolePermissionsParams) (*ListProjectRolePermissionsResponse, error) {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "ListProjectRolePermissions", p)
+ ret0, _ := ret[0].(*ListProjectRolePermissionsResponse)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
+}
+
+// ListProjectRolePermissions indicates an expected call of ListProjectRolePermissions.
+func (mr *MockProjectServiceIfaceMockRecorder) ListProjectRolePermissions(p interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectRolePermissions", reflect.TypeOf((*MockProjectServiceIface)(nil).ListProjectRolePermissions), p)
+}
+
// ListProjects mocks base method.
func (m *MockProjectServiceIface) ListProjects(p *ListProjectsParams) (*ListProjectsResponse, error) {
m.ctrl.T.Helper()
@@ -254,6 +299,20 @@ func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectParams(displaytex
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewCreateProjectParams), displaytext, name)
}
+// NewCreateProjectRolePermissionParams mocks base method.
+func (m *MockProjectServiceIface) NewCreateProjectRolePermissionParams(permission, projectid, projectroleid, rule string) *CreateProjectRolePermissionParams {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "NewCreateProjectRolePermissionParams", permission, projectid, projectroleid, rule)
+ ret0, _ := ret[0].(*CreateProjectRolePermissionParams)
+ return ret0
+}
+
+// NewCreateProjectRolePermissionParams indicates an expected call of NewCreateProjectRolePermissionParams.
+func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectRolePermissionParams(permission, projectid, projectroleid, rule interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateProjectRolePermissionParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewCreateProjectRolePermissionParams), permission, projectid, projectroleid, rule)
+}
+
// NewDeleteProjectInvitationParams mocks base method.
func (m *MockProjectServiceIface) NewDeleteProjectInvitationParams(id string) *DeleteProjectInvitationParams {
m.ctrl.T.Helper()
@@ -282,6 +341,20 @@ func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectParams(id interfa
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteProjectParams), id)
}
+// NewDeleteProjectRolePermissionParams mocks base method.
+func (m *MockProjectServiceIface) NewDeleteProjectRolePermissionParams(id, projectid string) *DeleteProjectRolePermissionParams {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "NewDeleteProjectRolePermissionParams", id, projectid)
+ ret0, _ := ret[0].(*DeleteProjectRolePermissionParams)
+ return ret0
+}
+
+// NewDeleteProjectRolePermissionParams indicates an expected call of NewDeleteProjectRolePermissionParams.
+func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectRolePermissionParams(id, projectid interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteProjectRolePermissionParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteProjectRolePermissionParams), id, projectid)
+}
+
// NewListProjectInvitationsParams mocks base method.
func (m *MockProjectServiceIface) NewListProjectInvitationsParams() *ListProjectInvitationsParams {
m.ctrl.T.Helper()
@@ -296,6 +369,20 @@ func (mr *MockProjectServiceIfaceMockRecorder) NewListProjectInvitationsParams()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListProjectInvitationsParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewListProjectInvitationsParams))
}
+// NewListProjectRolePermissionsParams mocks base method.
+func (m *MockProjectServiceIface) NewListProjectRolePermissionsParams(projectid string) *ListProjectRolePermissionsParams {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "NewListProjectRolePermissionsParams", projectid)
+ ret0, _ := ret[0].(*ListProjectRolePermissionsParams)
+ return ret0
+}
+
+// NewListProjectRolePermissionsParams indicates an expected call of NewListProjectRolePermissionsParams.
+func (mr *MockProjectServiceIfaceMockRecorder) NewListProjectRolePermissionsParams(projectid interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListProjectRolePermissionsParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewListProjectRolePermissionsParams), projectid)
+}
+
// NewListProjectsParams mocks base method.
func (m *MockProjectServiceIface) NewListProjectsParams() *ListProjectsParams {
m.ctrl.T.Helper()
@@ -352,6 +439,20 @@ func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectParams(id interfa
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewUpdateProjectParams), id)
}
+// NewUpdateProjectRolePermissionParams mocks base method.
+func (m *MockProjectServiceIface) NewUpdateProjectRolePermissionParams(projectid, projectroleid string) *UpdateProjectRolePermissionParams {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "NewUpdateProjectRolePermissionParams", projectid, projectroleid)
+ ret0, _ := ret[0].(*UpdateProjectRolePermissionParams)
+ return ret0
+}
+
+// NewUpdateProjectRolePermissionParams indicates an expected call of NewUpdateProjectRolePermissionParams.
+func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectRolePermissionParams(projectid, projectroleid interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateProjectRolePermissionParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewUpdateProjectRolePermissionParams), projectid, projectroleid)
+}
+
// SuspendProject mocks base method.
func (m *MockProjectServiceIface) SuspendProject(p *SuspendProjectParams) (*SuspendProjectResponse, error) {
m.ctrl.T.Helper()
@@ -396,3 +497,18 @@ func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectInvitation(p interfa
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProjectInvitation", reflect.TypeOf((*MockProjectServiceIface)(nil).UpdateProjectInvitation), p)
}
+
+// UpdateProjectRolePermission mocks base method.
+func (m *MockProjectServiceIface) UpdateProjectRolePermission(p *UpdateProjectRolePermissionParams) (*UpdateProjectRolePermissionResponse, error) {
+ m.ctrl.T.Helper()
+ ret := m.ctrl.Call(m, "UpdateProjectRolePermission", p)
+ ret0, _ := ret[0].(*UpdateProjectRolePermissionResponse)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
+}
+
+// UpdateProjectRolePermission indicates an expected call of UpdateProjectRolePermission.
+func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectRolePermission(p interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProjectRolePermission", reflect.TypeOf((*MockProjectServiceIface)(nil).UpdateProjectRolePermission), p)
+}
diff --git a/cloudstack/ProjectService_test.go b/cloudstack/ProjectService_test.go
index 6691fff..8d65869 100644
--- a/cloudstack/ProjectService_test.go
+++ b/cloudstack/ProjectService_test.go
@@ -115,3 +115,28 @@ func TestProjectService_UpdateProject(t *testing.T) {
t.Errorf("Failed to update project name")
}
}
+
+func TestProjectService_listProjectRolePermissions(t *testing.T) {
+ server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
+ apiName := "listProjectRolePermissions"
+ response, err := ReadData(apiName, "ProjectService")
+ if err != nil {
+ t.Errorf("Failed to read response data due to: %v", err)
+ }
+ fmt.Fprintln(writer, response[apiName])
+ }))
+ defer server.Close()
+ client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
+ params := client.Project.NewListProjectRolePermissionsParams("69646881-8d7f-4800-987d-106698a42608")
+ params.SetProjectroleid("fa089002-d055-46b5-aa0a-18f2eae2b4fc")
+ resp, err := client.Project.ListProjectRolePermissions(params)
+ if err != nil {
+ t.Errorf("Failed to list project role permissions due to %v", err)
+ return
+ }
+
+ fmt.Println(resp)
+ if resp == nil || resp.Count != 1 {
+ t.Errorf("Failed to list VM")
+ }
+}
diff --git a/cloudstack/RouterService.go b/cloudstack/RouterService.go
index d5926b3..8c4f81a 100644
--- a/cloudstack/RouterService.go
+++ b/cloudstack/RouterService.go
@@ -138,6 +138,7 @@ type ChangeServiceForRouterResponse struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []ChangeServiceForRouterResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
@@ -487,6 +488,7 @@ type DestroyRouterResponse struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []DestroyRouterResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
@@ -563,6 +565,10 @@ func (p *ListRoutersParams) toURLValues() url.Values {
vv := strconv.FormatBool(v.(bool))
u.Set("forvpc", vv)
}
+ if v, found := p.p["healthchecksfailed"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("healthchecksfailed", vv)
+ }
if v, found := p.p["hostid"]; found {
u.Set("hostid", v.(string))
}
@@ -690,6 +696,21 @@ func (p *ListRoutersParams) GetForvpc() (bool, bool) {
return value, ok
}
+func (p *ListRoutersParams) SetHealthchecksfailed(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["healthchecksfailed"] = v
+}
+
+func (p *ListRoutersParams) GetHealthchecksfailed() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["healthchecksfailed"].(bool)
+ return value, ok
+}
+
func (p *ListRoutersParams) SetHostid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1039,6 +1060,7 @@ type Router struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []RouterHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
@@ -1295,12 +1317,31 @@ func (p *RebootRouterParams) toURLValues() url.Values {
if p.p == nil {
return u
}
+ if v, found := p.p["forced"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("forced", vv)
+ }
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
+func (p *RebootRouterParams) SetForced(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["forced"] = v
+}
+
+func (p *RebootRouterParams) GetForced() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["forced"].(bool)
+ return value, ok
+}
+
func (p *RebootRouterParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1373,6 +1414,7 @@ type RebootRouterResponse struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []RebootRouterResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
@@ -1510,6 +1552,7 @@ type StartRouterResponse struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []StartRouterResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
@@ -1666,6 +1709,7 @@ type StopRouterResponse struct {
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
+ Hasannotations bool `json:"hasannotations"`
Healthcheckresults []StopRouterResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostid string `json:"hostid"`
diff --git a/cloudstack/SSHService.go b/cloudstack/SSHService.go
index 4b2f651..a5f9777 100644
--- a/cloudstack/SSHService.go
+++ b/cloudstack/SSHService.go
@@ -21,6 +21,7 @@ package cloudstack
import (
"encoding/json"
+ "fmt"
"net/url"
"strconv"
)
@@ -32,6 +33,7 @@ type SSHServiceIface interface {
NewDeleteSSHKeyPairParams(name string) *DeleteSSHKeyPairParams
ListSSHKeyPairs(p *ListSSHKeyPairsParams) (*ListSSHKeyPairsResponse, error)
NewListSSHKeyPairsParams() *ListSSHKeyPairsParams
+ GetSSHKeyPairID(name string, opts ...OptionFunc) (string, int, error)
RegisterSSHKeyPair(p *RegisterSSHKeyPairParams) (*RegisterSSHKeyPairResponse, error)
NewRegisterSSHKeyPairParams(name string, publickey string) *RegisterSSHKeyPairParams
ResetSSHKeyForVirtualMachine(p *ResetSSHKeyForVirtualMachineParams) (*ResetSSHKeyForVirtualMachineResponse, error)
@@ -151,14 +153,16 @@ func (s *SSHService) CreateSSHKeyPair(p *CreateSSHKeyPairParams) (*CreateSSHKeyP
}
type CreateSSHKeyPairResponse struct {
- Account string `json:"account"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Fingerprint string `json:"fingerprint"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Privatekey string `json:"privatekey"`
+ Account string `json:"account"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Fingerprint string `json:"fingerprint"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Privatekey string `json:"privatekey"`
}
type DeleteSSHKeyPairParams struct {
@@ -507,6 +511,42 @@ func (s *SSHService) NewListSSHKeyPairsParams() *ListSSHKeyPairsParams {
return p
}
+// This is a courtesy helper function, which in some cases may not work as expected!
+func (s *SSHService) GetSSHKeyPairID(name string, opts ...OptionFunc) (string, int, error) {
+ p := &ListSSHKeyPairsParams{}
+ p.p = make(map[string]interface{})
+
+ p.p["name"] = name
+
+ for _, fn := range append(s.cs.options, opts...) {
+ if err := fn(s.cs, p); err != nil {
+ return "", -1, err
+ }
+ }
+
+ l, err := s.ListSSHKeyPairs(p)
+ if err != nil {
+ return "", -1, err
+ }
+
+ if l.Count == 0 {
+ return "", l.Count, fmt.Errorf("No match found for %s: %+v", name, l)
+ }
+
+ if l.Count == 1 {
+ return l.SSHKeyPairs[0].Id, l.Count, nil
+ }
+
+ if l.Count > 1 {
+ for _, v := range l.SSHKeyPairs {
+ if v.Name == name {
+ return v.Id, l.Count, nil
+ }
+ }
+ }
+ return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", name, l)
+}
+
// List registered keypairs
func (s *SSHService) ListSSHKeyPairs(p *ListSSHKeyPairsParams) (*ListSSHKeyPairsResponse, error) {
resp, err := s.cs.newRequest("listSSHKeyPairs", p.toURLValues())
@@ -528,13 +568,15 @@ type ListSSHKeyPairsResponse struct {
}
type SSHKeyPair struct {
- Account string `json:"account"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Fingerprint string `json:"fingerprint"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
+ Account string `json:"account"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Fingerprint string `json:"fingerprint"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
}
type RegisterSSHKeyPairParams struct {
@@ -669,13 +711,15 @@ func (s *SSHService) RegisterSSHKeyPair(p *RegisterSSHKeyPairParams) (*RegisterS
}
type RegisterSSHKeyPairResponse struct {
- Account string `json:"account"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Fingerprint string `json:"fingerprint"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
+ Account string `json:"account"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Fingerprint string `json:"fingerprint"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
}
type ResetSSHKeyForVirtualMachineParams struct {
@@ -852,9 +896,11 @@ type ResetSSHKeyForVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -864,6 +910,7 @@ type ResetSSHKeyForVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -876,14 +923,17 @@ type ResetSSHKeyForVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []ResetSSHKeyForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
diff --git a/cloudstack/SSHService_mock.go b/cloudstack/SSHService_mock.go
index 1359680..24d7098 100644
--- a/cloudstack/SSHService_mock.go
+++ b/cloudstack/SSHService_mock.go
@@ -82,6 +82,27 @@ func (mr *MockSSHServiceIfaceMockRecorder) DeleteSSHKeyPair(p interface{}) *gomo
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSSHKeyPair", reflect.TypeOf((*MockSSHServiceIface)(nil).DeleteSSHKeyPair), p)
}
+// GetSSHKeyPairID mocks base method.
+func (m *MockSSHServiceIface) GetSSHKeyPairID(name string, opts ...OptionFunc) (string, int, error) {
+ m.ctrl.T.Helper()
+ varargs := []interface{}{name}
+ for _, a := range opts {
+ varargs = append(varargs, a)
+ }
+ ret := m.ctrl.Call(m, "GetSSHKeyPairID", varargs...)
+ ret0, _ := ret[0].(string)
+ ret1, _ := ret[1].(int)
+ ret2, _ := ret[2].(error)
+ return ret0, ret1, ret2
+}
+
+// GetSSHKeyPairID indicates an expected call of GetSSHKeyPairID.
+func (mr *MockSSHServiceIfaceMockRecorder) GetSSHKeyPairID(name interface{}, opts ...interface{}) *gomock.Call {
+ mr.mock.ctrl.T.Helper()
+ varargs := append([]interface{}{name}, opts...)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSSHKeyPairID", reflect.TypeOf((*MockSSHServiceIface)(nil).GetSSHKeyPairID), varargs...)
+}
+
// ListSSHKeyPairs mocks base method.
func (m *MockSSHServiceIface) ListSSHKeyPairs(p *ListSSHKeyPairsParams) (*ListSSHKeyPairsResponse, error) {
m.ctrl.T.Helper()
diff --git a/cloudstack/ServiceOfferingService.go b/cloudstack/ServiceOfferingService.go
index c3ee0b6..402ef15 100644
--- a/cloudstack/ServiceOfferingService.go
+++ b/cloudstack/ServiceOfferingService.go
@@ -103,6 +103,10 @@ func (p *CreateServiceOfferingParams) toURLValues() url.Values {
vv := strings.Join(v.([]string), ",")
u.Set("domainid", vv)
}
+ if v, found := p.p["dynamicscalingenabled"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("dynamicscalingenabled", vv)
+ }
if v, found := p.p["hosttags"]; found {
u.Set("hosttags", v.(string))
}
@@ -428,6 +432,21 @@ func (p *CreateServiceOfferingParams) GetDomainid() ([]string, bool) {
return value, ok
}
+func (p *CreateServiceOfferingParams) SetDynamicscalingenabled(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["dynamicscalingenabled"] = v
+}
+
+func (p *CreateServiceOfferingParams) GetDynamicscalingenabled() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["dynamicscalingenabled"].(bool)
+ return value, ok
+}
+
func (p *CreateServiceOfferingParams) SetHosttags(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -914,6 +933,8 @@ type CreateServiceOfferingResponse struct {
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Dynamicscalingenabled bool `json:"dynamicscalingenabled"`
+ Hasannotations bool `json:"hasannotations"`
Hosttags string `json:"hosttags"`
Hypervisorsnapshotreserve int `json:"hypervisorsnapshotreserve"`
Id string `json:"id"`
@@ -933,9 +954,9 @@ type CreateServiceOfferingResponse struct {
Provisioningtype string `json:"provisioningtype"`
Rootdisksize int64 `json:"rootdisksize"`
Serviceofferingdetails map[string]string `json:"serviceofferingdetails"`
+ Storagetags string `json:"storagetags"`
Storagetype string `json:"storagetype"`
Systemvmtype string `json:"systemvmtype"`
- Tags string `json:"tags"`
Vspherestoragepolicy string `json:"vspherestoragepolicy"`
Zone string `json:"zone"`
Zoneid string `json:"zoneid"`
@@ -1452,6 +1473,8 @@ type ServiceOffering struct {
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Dynamicscalingenabled bool `json:"dynamicscalingenabled"`
+ Hasannotations bool `json:"hasannotations"`
Hosttags string `json:"hosttags"`
Hypervisorsnapshotreserve int `json:"hypervisorsnapshotreserve"`
Id string `json:"id"`
@@ -1471,9 +1494,9 @@ type ServiceOffering struct {
Provisioningtype string `json:"provisioningtype"`
Rootdisksize int64 `json:"rootdisksize"`
Serviceofferingdetails map[string]string `json:"serviceofferingdetails"`
+ Storagetags string `json:"storagetags"`
Storagetype string `json:"storagetype"`
Systemvmtype string `json:"systemvmtype"`
- Tags string `json:"tags"`
Vspherestoragepolicy string `json:"vspherestoragepolicy"`
Zone string `json:"zone"`
Zoneid string `json:"zoneid"`
@@ -1494,6 +1517,9 @@ func (p *UpdateServiceOfferingParams) toURLValues() url.Values {
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
+ if v, found := p.p["hosttags"]; found {
+ u.Set("hosttags", v.(string))
+ }
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
@@ -1504,6 +1530,9 @@ func (p *UpdateServiceOfferingParams) toURLValues() url.Values {
vv := strconv.Itoa(v.(int))
u.Set("sortkey", vv)
}
+ if v, found := p.p["storagetags"]; found {
+ u.Set("storagetags", v.(string))
+ }
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
@@ -1540,6 +1569,21 @@ func (p *UpdateServiceOfferingParams) GetDomainid() (string, bool) {
return value, ok
}
+func (p *UpdateServiceOfferingParams) SetHosttags(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["hosttags"] = v
+}
+
+func (p *UpdateServiceOfferingParams) GetHosttags() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["hosttags"].(string)
+ return value, ok
+}
+
func (p *UpdateServiceOfferingParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1585,6 +1629,21 @@ func (p *UpdateServiceOfferingParams) GetSortkey() (int, bool) {
return value, ok
}
+func (p *UpdateServiceOfferingParams) SetStoragetags(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["storagetags"] = v
+}
+
+func (p *UpdateServiceOfferingParams) GetStoragetags() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["storagetags"].(string)
+ return value, ok
+}
+
func (p *UpdateServiceOfferingParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1650,6 +1709,8 @@ type UpdateServiceOfferingResponse struct {
Displaytext string `json:"displaytext"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Dynamicscalingenabled bool `json:"dynamicscalingenabled"`
+ Hasannotations bool `json:"hasannotations"`
Hosttags string `json:"hosttags"`
Hypervisorsnapshotreserve int `json:"hypervisorsnapshotreserve"`
Id string `json:"id"`
@@ -1669,9 +1730,9 @@ type UpdateServiceOfferingResponse struct {
Provisioningtype string `json:"provisioningtype"`
Rootdisksize int64 `json:"rootdisksize"`
Serviceofferingdetails map[string]string `json:"serviceofferingdetails"`
+ Storagetags string `json:"storagetags"`
Storagetype string `json:"storagetype"`
Systemvmtype string `json:"systemvmtype"`
- Tags string `json:"tags"`
Vspherestoragepolicy string `json:"vspherestoragepolicy"`
Zone string `json:"zone"`
Zoneid string `json:"zoneid"`
diff --git a/cloudstack/SnapshotService.go b/cloudstack/SnapshotService.go
index cb472a2..f469d12 100644
--- a/cloudstack/SnapshotService.go
+++ b/cloudstack/SnapshotService.go
@@ -284,30 +284,31 @@ func (s *SnapshotService) CreateSnapshot(p *CreateSnapshotParams) (*CreateSnapsh
}
type CreateSnapshotResponse struct {
- Account string `json:"account"`
- Created string `json:"created"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Id string `json:"id"`
- Intervaltype string `json:"intervaltype"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Locationtype string `json:"locationtype"`
- Name string `json:"name"`
- Osdisplayname string `json:"osdisplayname"`
- Ostypeid string `json:"ostypeid"`
- Physicalsize int64 `json:"physicalsize"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Revertable bool `json:"revertable"`
- Snapshottype string `json:"snapshottype"`
- State string `json:"state"`
- Tags []Tags `json:"tags"`
- Virtualsize int64 `json:"virtualsize"`
- Volumeid string `json:"volumeid"`
- Volumename string `json:"volumename"`
- Volumetype string `json:"volumetype"`
- Zoneid string `json:"zoneid"`
+ Account string `json:"account"`
+ Created string `json:"created"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ Intervaltype string `json:"intervaltype"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Locationtype string `json:"locationtype"`
+ Name string `json:"name"`
+ Osdisplayname string `json:"osdisplayname"`
+ Ostypeid string `json:"ostypeid"`
+ Physicalsize int64 `json:"physicalsize"`
+ Project string `json:"project"`
+ Projectid string `json:"projectid"`
+ Revertable bool `json:"revertable"`
+ Snapshottype string `json:"snapshottype"`
+ State string `json:"state"`
+ Tags []Tags `json:"tags"`
+ Virtualsize int64 `json:"virtualsize"`
+ Volumeid string `json:"volumeid"`
+ Volumename string `json:"volumename"`
+ Volumetype string `json:"volumetype"`
+ Zoneid string `json:"zoneid"`
}
func (r *CreateSnapshotResponse) UnmarshalJSON(b []byte) error {
@@ -510,16 +511,17 @@ func (s *SnapshotService) CreateSnapshotPolicy(p *CreateSnapshotPolicyParams) (*
}
type CreateSnapshotPolicyResponse struct {
- Fordisplay bool `json:"fordisplay"`
- Id string `json:"id"`
- Intervaltype int `json:"intervaltype"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Maxsnaps int `json:"maxsnaps"`
- Schedule string `json:"schedule"`
- Tags []Tags `json:"tags"`
- Timezone string `json:"timezone"`
- Volumeid string `json:"volumeid"`
+ Fordisplay bool `json:"fordisplay"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ Intervaltype int `json:"intervaltype"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Maxsnaps int `json:"maxsnaps"`
+ Schedule string `json:"schedule"`
+ Tags []Tags `json:"tags"`
+ Timezone string `json:"timezone"`
+ Volumeid string `json:"volumeid"`
}
type CreateVMSnapshotParams struct {
@@ -678,6 +680,7 @@ type CreateVMSnapshotResponse struct {
Displayname string `json:"displayname"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
JobID string `json:"jobid"`
@@ -1139,16 +1142,17 @@ type ListSnapshotPoliciesResponse struct {
}
type SnapshotPolicy struct {
- Fordisplay bool `json:"fordisplay"`
- Id string `json:"id"`
- Intervaltype int `json:"intervaltype"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Maxsnaps int `json:"maxsnaps"`
- Schedule string `json:"schedule"`
- Tags []Tags `json:"tags"`
- Timezone string `json:"timezone"`
- Volumeid string `json:"volumeid"`
+ Fordisplay bool `json:"fordisplay"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ Intervaltype int `json:"intervaltype"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Maxsnaps int `json:"maxsnaps"`
+ Schedule string `json:"schedule"`
+ Tags []Tags `json:"tags"`
+ Timezone string `json:"timezone"`
+ Volumeid string `json:"volumeid"`
}
type ListSnapshotsParams struct {
@@ -1572,30 +1576,31 @@ type ListSnapshotsResponse struct {
}
type Snapshot struct {
- Account string `json:"account"`
- Created string `json:"created"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Id string `json:"id"`
- Intervaltype string `json:"intervaltype"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Locationtype string `json:"locationtype"`
- Name string `json:"name"`
- Osdisplayname string `json:"osdisplayname"`
- Ostypeid string `json:"ostypeid"`
- Physicalsize int64 `json:"physicalsize"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Revertable bool `json:"revertable"`
- Snapshottype string `json:"snapshottype"`
- State string `json:"state"`
- Tags []Tags `json:"tags"`
- Virtualsize int64 `json:"virtualsize"`
- Volumeid string `json:"volumeid"`
- Volumename string `json:"volumename"`
- Volumetype string `json:"volumetype"`
- Zoneid string `json:"zoneid"`
+ Account string `json:"account"`
+ Created string `json:"created"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ Intervaltype string `json:"intervaltype"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Locationtype string `json:"locationtype"`
+ Name string `json:"name"`
+ Osdisplayname string `json:"osdisplayname"`
+ Ostypeid string `json:"ostypeid"`
+ Physicalsize int64 `json:"physicalsize"`
+ Project string `json:"project"`
+ Projectid string `json:"projectid"`
+ Revertable bool `json:"revertable"`
+ Snapshottype string `json:"snapshottype"`
+ State string `json:"state"`
+ Tags []Tags `json:"tags"`
+ Virtualsize int64 `json:"virtualsize"`
+ Volumeid string `json:"volumeid"`
+ Volumename string `json:"volumename"`
+ Volumetype string `json:"volumetype"`
+ Zoneid string `json:"zoneid"`
}
func (r *Snapshot) UnmarshalJSON(b []byte) error {
@@ -1970,6 +1975,7 @@ type VMSnapshot struct {
Displayname string `json:"displayname"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
JobID string `json:"jobid"`
@@ -2063,30 +2069,31 @@ func (s *SnapshotService) RevertSnapshot(p *RevertSnapshotParams) (*RevertSnapsh
}
type RevertSnapshotResponse struct {
- Account string `json:"account"`
- Created string `json:"created"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Id string `json:"id"`
- Intervaltype string `json:"intervaltype"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Locationtype string `json:"locationtype"`
- Name string `json:"name"`
- Osdisplayname string `json:"osdisplayname"`
- Ostypeid string `json:"ostypeid"`
- Physicalsize int64 `json:"physicalsize"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Revertable bool `json:"revertable"`
- Snapshottype string `json:"snapshottype"`
- State string `json:"state"`
- Tags []Tags `json:"tags"`
- Virtualsize int64 `json:"virtualsize"`
- Volumeid string `json:"volumeid"`
- Volumename string `json:"volumename"`
- Volumetype string `json:"volumetype"`
- Zoneid string `json:"zoneid"`
+ Account string `json:"account"`
+ Created string `json:"created"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ Intervaltype string `json:"intervaltype"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Locationtype string `json:"locationtype"`
+ Name string `json:"name"`
+ Osdisplayname string `json:"osdisplayname"`
+ Ostypeid string `json:"ostypeid"`
+ Physicalsize int64 `json:"physicalsize"`
+ Project string `json:"project"`
+ Projectid string `json:"projectid"`
+ Revertable bool `json:"revertable"`
+ Snapshottype string `json:"snapshottype"`
+ State string `json:"state"`
+ Tags []Tags `json:"tags"`
+ Virtualsize int64 `json:"virtualsize"`
+ Volumeid string `json:"volumeid"`
+ Volumename string `json:"volumename"`
+ Volumetype string `json:"volumetype"`
+ Zoneid string `json:"zoneid"`
}
func (r *RevertSnapshotResponse) UnmarshalJSON(b []byte) error {
@@ -2217,9 +2224,11 @@ type RevertToVMSnapshotResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -2229,6 +2238,7 @@ type RevertToVMSnapshotResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -2241,14 +2251,17 @@ type RevertToVMSnapshotResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []RevertToVMSnapshotResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -2444,14 +2457,15 @@ func (s *SnapshotService) UpdateSnapshotPolicy(p *UpdateSnapshotPolicyParams) (*
}
type UpdateSnapshotPolicyResponse struct {
- Fordisplay bool `json:"fordisplay"`
- Id string `json:"id"`
- Intervaltype int `json:"intervaltype"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Maxsnaps int `json:"maxsnaps"`
- Schedule string `json:"schedule"`
- Tags []Tags `json:"tags"`
- Timezone string `json:"timezone"`
- Volumeid string `json:"volumeid"`
+ Fordisplay bool `json:"fordisplay"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ Intervaltype int `json:"intervaltype"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Maxsnaps int `json:"maxsnaps"`
+ Schedule string `json:"schedule"`
+ Tags []Tags `json:"tags"`
+ Timezone string `json:"timezone"`
+ Volumeid string `json:"volumeid"`
}
diff --git a/cloudstack/StoragePoolService.go b/cloudstack/StoragePoolService.go
index 2451a76..80f7980 100644
--- a/cloudstack/StoragePoolService.go
+++ b/cloudstack/StoragePoolService.go
@@ -117,6 +117,7 @@ type CancelStorageMaintenanceResponse struct {
Disksizeallocated int64 `json:"disksizeallocated"`
Disksizetotal int64 `json:"disksizetotal"`
Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
@@ -221,6 +222,7 @@ type EnableStorageMaintenanceResponse struct {
Disksizeallocated int64 `json:"disksizeallocated"`
Disksizetotal int64 `json:"disksizetotal"`
Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
diff --git a/cloudstack/SwiftService.go b/cloudstack/SwiftService.go
index db2b3f6..e4f670c 100644
--- a/cloudstack/SwiftService.go
+++ b/cloudstack/SwiftService.go
@@ -143,19 +143,20 @@ func (s *SwiftService) AddSwift(p *AddSwiftParams) (*AddSwiftResponse, error) {
}
type AddSwiftResponse struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type ListSwiftsParams struct {
@@ -310,17 +311,18 @@ type ListSwiftsResponse struct {
}
type Swift struct {
- Disksizetotal int64 `json:"disksizetotal"`
- Disksizeused int64 `json:"disksizeused"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Protocol string `json:"protocol"`
- Providername string `json:"providername"`
- Readonly bool `json:"readonly"`
- Scope string `json:"scope"`
- Url string `json:"url"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Disksizetotal int64 `json:"disksizetotal"`
+ Disksizeused int64 `json:"disksizeused"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Protocol string `json:"protocol"`
+ Providername string `json:"providername"`
+ Readonly bool `json:"readonly"`
+ Scope string `json:"scope"`
+ Url string `json:"url"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
diff --git a/cloudstack/SystemVMService.go b/cloudstack/SystemVMService.go
index acfce82..9f648b2 100644
--- a/cloudstack/SystemVMService.go
+++ b/cloudstack/SystemVMService.go
@@ -38,7 +38,7 @@ type SystemVMServiceIface interface {
GetSystemVmByName(name string, opts ...OptionFunc) (*SystemVm, int, error)
GetSystemVmByID(id string, opts ...OptionFunc) (*SystemVm, int, error)
MigrateSystemVm(p *MigrateSystemVmParams) (*MigrateSystemVmResponse, error)
- NewMigrateSystemVmParams(hostid string, virtualmachineid string) *MigrateSystemVmParams
+ NewMigrateSystemVmParams(virtualmachineid string) *MigrateSystemVmParams
RebootSystemVm(p *RebootSystemVmParams) (*RebootSystemVmResponse, error)
NewRebootSystemVmParams(id string) *RebootSystemVmParams
ScaleSystemVm(p *ScaleSystemVmParams) (*ScaleSystemVmResponse, error)
@@ -144,41 +144,43 @@ func (s *SystemVMService) ChangeServiceForSystemVm(p *ChangeServiceForSystemVmPa
}
type ChangeServiceForSystemVmResponse struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type DestroySystemVmParams struct {
@@ -256,41 +258,43 @@ func (s *SystemVMService) DestroySystemVm(p *DestroySystemVmParams) (*DestroySys
}
type DestroySystemVmResponse struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type ListSystemVmsParams struct {
@@ -617,41 +621,43 @@ type ListSystemVmsResponse struct {
}
type SystemVm struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type MigrateSystemVmParams struct {
@@ -663,15 +669,37 @@ func (p *MigrateSystemVmParams) toURLValues() url.Values {
if p.p == nil {
return u
}
+ if v, found := p.p["autoselect"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("autoselect", vv)
+ }
if v, found := p.p["hostid"]; found {
u.Set("hostid", v.(string))
}
+ if v, found := p.p["storageid"]; found {
+ u.Set("storageid", v.(string))
+ }
if v, found := p.p["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
return u
}
+func (p *MigrateSystemVmParams) SetAutoselect(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["autoselect"] = v
+}
+
+func (p *MigrateSystemVmParams) GetAutoselect() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["autoselect"].(bool)
+ return value, ok
+}
+
func (p *MigrateSystemVmParams) SetHostid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -687,6 +715,21 @@ func (p *MigrateSystemVmParams) GetHostid() (string, bool) {
return value, ok
}
+func (p *MigrateSystemVmParams) SetStorageid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["storageid"] = v
+}
+
+func (p *MigrateSystemVmParams) GetStorageid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["storageid"].(string)
+ return value, ok
+}
+
func (p *MigrateSystemVmParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -704,10 +747,9 @@ func (p *MigrateSystemVmParams) GetVirtualmachineid() (string, bool) {
// You should always use this function to get a new MigrateSystemVmParams instance,
// as then you are sure you have configured all required params
-func (s *SystemVMService) NewMigrateSystemVmParams(hostid string, virtualmachineid string) *MigrateSystemVmParams {
+func (s *SystemVMService) NewMigrateSystemVmParams(virtualmachineid string) *MigrateSystemVmParams {
p := &MigrateSystemVmParams{}
p.p = make(map[string]interface{})
- p.p["hostid"] = hostid
p.p["virtualmachineid"] = virtualmachineid
return p
}
@@ -748,41 +790,43 @@ func (s *SystemVMService) MigrateSystemVm(p *MigrateSystemVmParams) (*MigrateSys
}
type MigrateSystemVmResponse struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type RebootSystemVmParams struct {
@@ -794,12 +838,31 @@ func (p *RebootSystemVmParams) toURLValues() url.Values {
if p.p == nil {
return u
}
+ if v, found := p.p["forced"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("forced", vv)
+ }
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
+func (p *RebootSystemVmParams) SetForced(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["forced"] = v
+}
+
+func (p *RebootSystemVmParams) GetForced() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["forced"].(bool)
+ return value, ok
+}
+
func (p *RebootSystemVmParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -860,41 +923,43 @@ func (s *SystemVMService) RebootSystemVm(p *RebootSystemVmParams) (*RebootSystem
}
type RebootSystemVmResponse struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type ScaleSystemVmParams struct {
@@ -1012,41 +1077,43 @@ func (s *SystemVMService) ScaleSystemVm(p *ScaleSystemVmParams) (*ScaleSystemVmR
}
type ScaleSystemVmResponse struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type StartSystemVmParams struct {
@@ -1124,41 +1191,43 @@ func (s *SystemVMService) StartSystemVm(p *StartSystemVmParams) (*StartSystemVmR
}
type StartSystemVmResponse struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
type StopSystemVmParams struct {
@@ -1255,39 +1324,41 @@ func (s *SystemVMService) StopSystemVm(p *StopSystemVmParams) (*StopSystemVmResp
}
type StopSystemVmResponse struct {
- Activeviewersessions int `json:"activeviewersessions"`
- Agentstate string `json:"agentstate"`
- Created string `json:"created"`
- Disconnected string `json:"disconnected"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Gateway string `json:"gateway"`
- Guestvlan string `json:"guestvlan"`
- Hostid string `json:"hostid"`
- Hostname string `json:"hostname"`
- Hypervisor string `json:"hypervisor"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Linklocalip string `json:"linklocalip"`
- Linklocalmacaddress string `json:"linklocalmacaddress"`
- Linklocalnetmask string `json:"linklocalnetmask"`
- Name string `json:"name"`
- Networkdomain string `json:"networkdomain"`
- Podid string `json:"podid"`
- Podname string `json:"podname"`
- Privateip string `json:"privateip"`
- Privatemacaddress string `json:"privatemacaddress"`
- Privatenetmask string `json:"privatenetmask"`
- Publicip string `json:"publicip"`
- Publicmacaddress string `json:"publicmacaddress"`
- Publicnetmask string `json:"publicnetmask"`
- Publicvlan []string `json:"publicvlan"`
- State string `json:"state"`
- Systemvmtype string `json:"systemvmtype"`
- Templateid string `json:"templateid"`
- Templatename string `json:"templatename"`
- Version string `json:"version"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
+ Activeviewersessions int `json:"activeviewersessions"`
+ Agentstate string `json:"agentstate"`
+ Created string `json:"created"`
+ Disconnected string `json:"disconnected"`
+ Dns1 string `json:"dns1"`
+ Dns2 string `json:"dns2"`
+ Gateway string `json:"gateway"`
+ Guestvlan string `json:"guestvlan"`
+ Hasannotations bool `json:"hasannotations"`
+ Hostid string `json:"hostid"`
+ Hostname string `json:"hostname"`
+ Hypervisor string `json:"hypervisor"`
+ Id string `json:"id"`
+ Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Linklocalip string `json:"linklocalip"`
+ Linklocalmacaddress string `json:"linklocalmacaddress"`
+ Linklocalnetmask string `json:"linklocalnetmask"`
+ Name string `json:"name"`
+ Networkdomain string `json:"networkdomain"`
+ Podid string `json:"podid"`
+ Podname string `json:"podname"`
+ Privateip string `json:"privateip"`
+ Privatemacaddress string `json:"privatemacaddress"`
+ Privatenetmask string `json:"privatenetmask"`
+ Publicip string `json:"publicip"`
+ Publicmacaddress string `json:"publicmacaddress"`
+ Publicnetmask string `json:"publicnetmask"`
+ Publicvlan []string `json:"publicvlan"`
+ State string `json:"state"`
+ Systemvmtype string `json:"systemvmtype"`
+ Templateid string `json:"templateid"`
+ Templatename string `json:"templatename"`
+ Version string `json:"version"`
+ Zoneid string `json:"zoneid"`
+ Zonename string `json:"zonename"`
}
diff --git a/cloudstack/SystemVMService_mock.go b/cloudstack/SystemVMService_mock.go
index 1fd69a6..9c03657 100644
--- a/cloudstack/SystemVMService_mock.go
+++ b/cloudstack/SystemVMService_mock.go
@@ -218,17 +218,17 @@ func (mr *MockSystemVMServiceIfaceMockRecorder) NewListSystemVmsParams() *gomock
}
// NewMigrateSystemVmParams mocks base method.
-func (m *MockSystemVMServiceIface) NewMigrateSystemVmParams(hostid, virtualmachineid string) *MigrateSystemVmParams {
+func (m *MockSystemVMServiceIface) NewMigrateSystemVmParams(virtualmachineid string) *MigrateSystemVmParams {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "NewMigrateSystemVmParams", hostid, virtualmachineid)
+ ret := m.ctrl.Call(m, "NewMigrateSystemVmParams", virtualmachineid)
ret0, _ := ret[0].(*MigrateSystemVmParams)
return ret0
}
// NewMigrateSystemVmParams indicates an expected call of NewMigrateSystemVmParams.
-func (mr *MockSystemVMServiceIfaceMockRecorder) NewMigrateSystemVmParams(hostid, virtualmachineid interface{}) *gomock.Call {
+func (mr *MockSystemVMServiceIfaceMockRecorder) NewMigrateSystemVmParams(virtualmachineid interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewMigrateSystemVmParams), hostid, virtualmachineid)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewMigrateSystemVmParams), virtualmachineid)
}
// NewRebootSystemVmParams mocks base method.
diff --git a/cloudstack/TemplateService.go b/cloudstack/TemplateService.go
index 43c2f14..2f5908b 100644
--- a/cloudstack/TemplateService.go
+++ b/cloudstack/TemplateService.go
@@ -205,9 +205,11 @@ type CopyTemplateResponse struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -657,9 +659,11 @@ type CreateTemplateResponse struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -1599,6 +1603,10 @@ func (p *ListTemplatesParams) toURLValues() url.Values {
if v, found := p.p["projectid"]; found {
u.Set("projectid", v.(string))
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["showremoved"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("showremoved", vv)
@@ -1833,6 +1841,21 @@ func (p *ListTemplatesParams) GetProjectid() (string, bool) {
return value, ok
}
+func (p *ListTemplatesParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListTemplatesParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListTemplatesParams) SetShowremoved(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -2041,9 +2064,11 @@ type Template struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -2210,9 +2235,11 @@ type PrepareTemplateResponse struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -2798,9 +2825,11 @@ type RegisterTemplate struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
@@ -3193,9 +3222,11 @@ type UpdateTemplateResponse struct {
Domainid string `json:"domainid"`
Downloaddetails []map[string]string `json:"downloaddetails"`
Format string `json:"format"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
Isextractable bool `json:"isextractable"`
diff --git a/cloudstack/UsageService.go b/cloudstack/UsageService.go
index bfd3b17..3e2315c 100644
--- a/cloudstack/UsageService.go
+++ b/cloudstack/UsageService.go
@@ -1413,6 +1413,7 @@ type UsageRecord struct {
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Enddate string `json:"enddate"`
+ Hasannotations bool `json:"hasannotations"`
Isdefault bool `json:"isdefault"`
Issourcenat bool `json:"issourcenat"`
Issystem bool `json:"issystem"`
diff --git a/cloudstack/UserService.go b/cloudstack/UserService.go
index 07866a7..c5fe70a 100644
--- a/cloudstack/UserService.go
+++ b/cloudstack/UserService.go
@@ -268,6 +268,7 @@ type CreateUserResponse struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -456,6 +457,7 @@ type DisableUserResponse struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -540,6 +542,7 @@ type EnableUserResponse struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -620,6 +623,7 @@ type GetUserResponse struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -742,6 +746,10 @@ func (p *ListUsersParams) toURLValues() url.Values {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["state"]; found {
u.Set("state", v.(string))
}
@@ -886,6 +894,21 @@ func (p *ListUsersParams) GetPagesize() (int, bool) {
return value, ok
}
+func (p *ListUsersParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListUsersParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListUsersParams) SetState(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -987,6 +1010,7 @@ type User struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -1071,6 +1095,7 @@ type LockUserResponse struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
@@ -1378,6 +1403,7 @@ type UpdateUserResponse struct {
Domainid string `json:"domainid"`
Email string `json:"email"`
Firstname string `json:"firstname"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Iscallerchilddomain bool `json:"iscallerchilddomain"`
Isdefault bool `json:"isdefault"`
diff --git a/cloudstack/VMGroupService.go b/cloudstack/VMGroupService.go
index 1ac999a..52564b8 100644
--- a/cloudstack/VMGroupService.go
+++ b/cloudstack/VMGroupService.go
@@ -150,16 +150,17 @@ func (s *VMGroupService) CreateInstanceGroup(p *CreateInstanceGroupParams) (*Cre
}
type CreateInstanceGroupResponse struct {
- Account string `json:"account"`
- Created string `json:"created"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
+ Account string `json:"account"`
+ Created string `json:"created"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Project string `json:"project"`
+ Projectid string `json:"projectid"`
}
type DeleteInstanceGroupParams struct {
@@ -558,16 +559,17 @@ type ListInstanceGroupsResponse struct {
}
type InstanceGroup struct {
- Account string `json:"account"`
- Created string `json:"created"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
+ Account string `json:"account"`
+ Created string `json:"created"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Project string `json:"project"`
+ Projectid string `json:"projectid"`
}
type UpdateInstanceGroupParams struct {
@@ -643,14 +645,15 @@ func (s *VMGroupService) UpdateInstanceGroup(p *UpdateInstanceGroupParams) (*Upd
}
type UpdateInstanceGroupResponse struct {
- Account string `json:"account"`
- Created string `json:"created"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
+ Account string `json:"account"`
+ Created string `json:"created"`
+ Domain string `json:"domain"`
+ Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
+ Id string `json:"id"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Name string `json:"name"`
+ Project string `json:"project"`
+ Projectid string `json:"projectid"`
}
diff --git a/cloudstack/VPCService.go b/cloudstack/VPCService.go
index b91c928..546de71 100644
--- a/cloudstack/VPCService.go
+++ b/cloudstack/VPCService.go
@@ -712,11 +712,13 @@ type CreateVPCResponse struct {
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Fordisplay bool `json:"fordisplay"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
- Network []CreateVPCResponseNetwork `json:"network"`
+ Network []string `json:"network"`
Networkdomain string `json:"networkdomain"`
Project string `json:"project"`
Projectid string `json:"projectid"`
@@ -754,84 +756,6 @@ type CreateVPCResponseServiceCapability struct {
Value string `json:"value"`
}
-type CreateVPCResponseNetwork struct {
- Account string `json:"account"`
- Aclid string `json:"aclid"`
- Aclname string `json:"aclname"`
- Acltype string `json:"acltype"`
- Broadcastdomaintype string `json:"broadcastdomaintype"`
- Broadcasturi string `json:"broadcasturi"`
- Canusefordeploy bool `json:"canusefordeploy"`
- Cidr string `json:"cidr"`
- Details map[string]string `json:"details"`
- Displaynetwork bool `json:"displaynetwork"`
- Displaytext string `json:"displaytext"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Externalid string `json:"externalid"`
- Gateway string `json:"gateway"`
- Id string `json:"id"`
- Ip6cidr string `json:"ip6cidr"`
- Ip6gateway string `json:"ip6gateway"`
- Isdefault bool `json:"isdefault"`
- Ispersistent bool `json:"ispersistent"`
- Issystem bool `json:"issystem"`
- Name string `json:"name"`
- Netmask string `json:"netmask"`
- Networkcidr string `json:"networkcidr"`
- Networkdomain string `json:"networkdomain"`
- Networkofferingavailability string `json:"networkofferingavailability"`
- Networkofferingconservemode bool `json:"networkofferingconservemode"`
- Networkofferingdisplaytext string `json:"networkofferingdisplaytext"`
- Networkofferingid string `json:"networkofferingid"`
- Networkofferingname string `json:"networkofferingname"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Redundantrouter bool `json:"redundantrouter"`
- Related string `json:"related"`
- Reservediprange string `json:"reservediprange"`
- Restartrequired bool `json:"restartrequired"`
- Service []CreateVPCResponseNetworkService `json:"service"`
- Specifyipranges bool `json:"specifyipranges"`
- State string `json:"state"`
- Strechedl2subnet bool `json:"strechedl2subnet"`
- Subdomainaccess bool `json:"subdomainaccess"`
- Tags []Tags `json:"tags"`
- Traffictype string `json:"traffictype"`
- Type string `json:"type"`
- Vlan string `json:"vlan"`
- Vpcid string `json:"vpcid"`
- Vpcname string `json:"vpcname"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
- Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-}
-
-type CreateVPCResponseNetworkService struct {
- Capability []CreateVPCResponseNetworkServiceCapability `json:"capability"`
- Name string `json:"name"`
- Provider []CreateVPCResponseNetworkServiceProvider `json:"provider"`
-}
-
-type CreateVPCResponseNetworkServiceProvider struct {
- Canenableindividualservice bool `json:"canenableindividualservice"`
- Destinationphysicalnetworkid string `json:"destinationphysicalnetworkid"`
- Id string `json:"id"`
- Name string `json:"name"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Servicelist []string `json:"servicelist"`
- State string `json:"state"`
-}
-
-type CreateVPCResponseNetworkServiceCapability struct {
- Canchooseservicecapability bool `json:"canchooseservicecapability"`
- Name string `json:"name"`
- Value string `json:"value"`
-}
-
type CreateVPCOfferingParams struct {
p map[string]interface{}
}
@@ -848,6 +772,10 @@ func (p *CreateVPCOfferingParams) toURLValues() url.Values {
vv := strings.Join(v.([]string), ",")
u.Set("domainid", vv)
}
+ if v, found := p.p["enable"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("enable", vv)
+ }
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
@@ -909,6 +837,21 @@ func (p *CreateVPCOfferingParams) GetDomainid() ([]string, bool) {
return value, ok
}
+func (p *CreateVPCOfferingParams) SetEnable(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["enable"] = v
+}
+
+func (p *CreateVPCOfferingParams) GetEnable() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["enable"].(bool)
+ return value, ok
+}
+
func (p *CreateVPCOfferingParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -2459,6 +2402,10 @@ func (p *ListVPCsParams) toURLValues() url.Values {
vv := strconv.FormatBool(v.(bool))
u.Set("restartrequired", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["state"]; found {
u.Set("state", v.(string))
}
@@ -2692,6 +2639,21 @@ func (p *ListVPCsParams) GetRestartrequired() (bool, bool) {
return value, ok
}
+func (p *ListVPCsParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListVPCsParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListVPCsParams) SetState(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -2887,11 +2849,13 @@ type VPC struct {
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Fordisplay bool `json:"fordisplay"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
- Network []VPCNetwork `json:"network"`
+ Network []string `json:"network"`
Networkdomain string `json:"networkdomain"`
Project string `json:"project"`
Projectid string `json:"projectid"`
@@ -2929,84 +2893,6 @@ type VPCServiceInternalCapability struct {
Value string `json:"value"`
}
-type VPCNetwork struct {
- Account string `json:"account"`
- Aclid string `json:"aclid"`
- Aclname string `json:"aclname"`
- Acltype string `json:"acltype"`
- Broadcastdomaintype string `json:"broadcastdomaintype"`
- Broadcasturi string `json:"broadcasturi"`
- Canusefordeploy bool `json:"canusefordeploy"`
- Cidr string `json:"cidr"`
- Details map[string]string `json:"details"`
- Displaynetwork bool `json:"displaynetwork"`
- Displaytext string `json:"displaytext"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Externalid string `json:"externalid"`
- Gateway string `json:"gateway"`
- Id string `json:"id"`
- Ip6cidr string `json:"ip6cidr"`
- Ip6gateway string `json:"ip6gateway"`
- Isdefault bool `json:"isdefault"`
- Ispersistent bool `json:"ispersistent"`
- Issystem bool `json:"issystem"`
- Name string `json:"name"`
- Netmask string `json:"netmask"`
- Networkcidr string `json:"networkcidr"`
- Networkdomain string `json:"networkdomain"`
- Networkofferingavailability string `json:"networkofferingavailability"`
- Networkofferingconservemode bool `json:"networkofferingconservemode"`
- Networkofferingdisplaytext string `json:"networkofferingdisplaytext"`
- Networkofferingid string `json:"networkofferingid"`
- Networkofferingname string `json:"networkofferingname"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Redundantrouter bool `json:"redundantrouter"`
- Related string `json:"related"`
- Reservediprange string `json:"reservediprange"`
- Restartrequired bool `json:"restartrequired"`
- Service []VPCNetworkService `json:"service"`
- Specifyipranges bool `json:"specifyipranges"`
- State string `json:"state"`
- Strechedl2subnet bool `json:"strechedl2subnet"`
- Subdomainaccess bool `json:"subdomainaccess"`
- Tags []Tags `json:"tags"`
- Traffictype string `json:"traffictype"`
- Type string `json:"type"`
- Vlan string `json:"vlan"`
- Vpcid string `json:"vpcid"`
- Vpcname string `json:"vpcname"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
- Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-}
-
-type VPCNetworkService struct {
- Capability []VPCNetworkServiceCapability `json:"capability"`
- Name string `json:"name"`
- Provider []VPCNetworkServiceProvider `json:"provider"`
-}
-
-type VPCNetworkServiceProvider struct {
- Canenableindividualservice bool `json:"canenableindividualservice"`
- Destinationphysicalnetworkid string `json:"destinationphysicalnetworkid"`
- Id string `json:"id"`
- Name string `json:"name"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Servicelist []string `json:"servicelist"`
- State string `json:"state"`
-}
-
-type VPCNetworkServiceCapability struct {
- Canchooseservicecapability bool `json:"canchooseservicecapability"`
- Name string `json:"name"`
- Value string `json:"value"`
-}
-
type RestartVPCParams struct {
p map[string]interface{}
}
@@ -3106,11 +2992,6 @@ func (s *VPCService) RestartVPC(p *RestartVPCParams) (*RestartVPCResponse, error
return nil, err
}
- b, err = getRawValue(b)
- if err != nil {
- return nil, err
- }
-
if err := json.Unmarshal(b, &r); err != nil {
return nil, err
}
@@ -3120,132 +3001,10 @@ func (s *VPCService) RestartVPC(p *RestartVPCParams) (*RestartVPCResponse, error
}
type RestartVPCResponse struct {
- Account string `json:"account"`
- Cidr string `json:"cidr"`
- Created string `json:"created"`
- Displaytext string `json:"displaytext"`
- Distributedvpcrouter bool `json:"distributedvpcrouter"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Fordisplay bool `json:"fordisplay"`
- Id string `json:"id"`
- JobID string `json:"jobid"`
- Jobstatus int `json:"jobstatus"`
- Name string `json:"name"`
- Network []RestartVPCResponseNetwork `json:"network"`
- Networkdomain string `json:"networkdomain"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Redundantvpcrouter bool `json:"redundantvpcrouter"`
- Regionlevelvpc bool `json:"regionlevelvpc"`
- Restartrequired bool `json:"restartrequired"`
- Service []RestartVPCResponseService `json:"service"`
- State string `json:"state"`
- Tags []Tags `json:"tags"`
- Vpcofferingid string `json:"vpcofferingid"`
- Vpcofferingname string `json:"vpcofferingname"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
-}
-
-type RestartVPCResponseService struct {
- Capability []RestartVPCResponseServiceCapability `json:"capability"`
- Name string `json:"name"`
- Provider []RestartVPCResponseServiceProvider `json:"provider"`
-}
-
-type RestartVPCResponseServiceProvider struct {
- Canenableindividualservice bool `json:"canenableindividualservice"`
- Destinationphysicalnetworkid string `json:"destinationphysicalnetworkid"`
- Id string `json:"id"`
- Name string `json:"name"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Servicelist []string `json:"servicelist"`
- State string `json:"state"`
-}
-
-type RestartVPCResponseServiceCapability struct {
- Canchooseservicecapability bool `json:"canchooseservicecapability"`
- Name string `json:"name"`
- Value string `json:"value"`
-}
-
-type RestartVPCResponseNetwork struct {
- Account string `json:"account"`
- Aclid string `json:"aclid"`
- Aclname string `json:"aclname"`
- Acltype string `json:"acltype"`
- Broadcastdomaintype string `json:"broadcastdomaintype"`
- Broadcasturi string `json:"broadcasturi"`
- Canusefordeploy bool `json:"canusefordeploy"`
- Cidr string `json:"cidr"`
- Details map[string]string `json:"details"`
- Displaynetwork bool `json:"displaynetwork"`
- Displaytext string `json:"displaytext"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Externalid string `json:"externalid"`
- Gateway string `json:"gateway"`
- Id string `json:"id"`
- Ip6cidr string `json:"ip6cidr"`
- Ip6gateway string `json:"ip6gateway"`
- Isdefault bool `json:"isdefault"`
- Ispersistent bool `json:"ispersistent"`
- Issystem bool `json:"issystem"`
- Name string `json:"name"`
- Netmask string `json:"netmask"`
- Networkcidr string `json:"networkcidr"`
- Networkdomain string `json:"networkdomain"`
- Networkofferingavailability string `json:"networkofferingavailability"`
- Networkofferingconservemode bool `json:"networkofferingconservemode"`
- Networkofferingdisplaytext string `json:"networkofferingdisplaytext"`
- Networkofferingid string `json:"networkofferingid"`
- Networkofferingname string `json:"networkofferingname"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Redundantrouter bool `json:"redundantrouter"`
- Related string `json:"related"`
- Reservediprange string `json:"reservediprange"`
- Restartrequired bool `json:"restartrequired"`
- Service []RestartVPCResponseNetworkService `json:"service"`
- Specifyipranges bool `json:"specifyipranges"`
- State string `json:"state"`
- Strechedl2subnet bool `json:"strechedl2subnet"`
- Subdomainaccess bool `json:"subdomainaccess"`
- Tags []Tags `json:"tags"`
- Traffictype string `json:"traffictype"`
- Type string `json:"type"`
- Vlan string `json:"vlan"`
- Vpcid string `json:"vpcid"`
- Vpcname string `json:"vpcname"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
- Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-}
-
-type RestartVPCResponseNetworkService struct {
- Capability []RestartVPCResponseNetworkServiceCapability `json:"capability"`
- Name string `json:"name"`
- Provider []RestartVPCResponseNetworkServiceProvider `json:"provider"`
-}
-
-type RestartVPCResponseNetworkServiceProvider struct {
- Canenableindividualservice bool `json:"canenableindividualservice"`
- Destinationphysicalnetworkid string `json:"destinationphysicalnetworkid"`
- Id string `json:"id"`
- Name string `json:"name"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Servicelist []string `json:"servicelist"`
- State string `json:"state"`
-}
-
-type RestartVPCResponseNetworkServiceCapability struct {
- Canchooseservicecapability bool `json:"canchooseservicecapability"`
- Name string `json:"name"`
- Value string `json:"value"`
+ Displaytext string `json:"displaytext"`
+ JobID string `json:"jobid"`
+ Jobstatus int `json:"jobstatus"`
+ Success bool `json:"success"`
}
type UpdateVPCParams struct {
@@ -3404,11 +3163,13 @@ type UpdateVPCResponse struct {
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Fordisplay bool `json:"fordisplay"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
- Network []UpdateVPCResponseNetwork `json:"network"`
+ Network []string `json:"network"`
Networkdomain string `json:"networkdomain"`
Project string `json:"project"`
Projectid string `json:"projectid"`
@@ -3446,84 +3207,6 @@ type UpdateVPCResponseServiceCapability struct {
Value string `json:"value"`
}
-type UpdateVPCResponseNetwork struct {
- Account string `json:"account"`
- Aclid string `json:"aclid"`
- Aclname string `json:"aclname"`
- Acltype string `json:"acltype"`
- Broadcastdomaintype string `json:"broadcastdomaintype"`
- Broadcasturi string `json:"broadcasturi"`
- Canusefordeploy bool `json:"canusefordeploy"`
- Cidr string `json:"cidr"`
- Details map[string]string `json:"details"`
- Displaynetwork bool `json:"displaynetwork"`
- Displaytext string `json:"displaytext"`
- Dns1 string `json:"dns1"`
- Dns2 string `json:"dns2"`
- Domain string `json:"domain"`
- Domainid string `json:"domainid"`
- Externalid string `json:"externalid"`
- Gateway string `json:"gateway"`
- Id string `json:"id"`
- Ip6cidr string `json:"ip6cidr"`
- Ip6gateway string `json:"ip6gateway"`
- Isdefault bool `json:"isdefault"`
- Ispersistent bool `json:"ispersistent"`
- Issystem bool `json:"issystem"`
- Name string `json:"name"`
- Netmask string `json:"netmask"`
- Networkcidr string `json:"networkcidr"`
- Networkdomain string `json:"networkdomain"`
- Networkofferingavailability string `json:"networkofferingavailability"`
- Networkofferingconservemode bool `json:"networkofferingconservemode"`
- Networkofferingdisplaytext string `json:"networkofferingdisplaytext"`
- Networkofferingid string `json:"networkofferingid"`
- Networkofferingname string `json:"networkofferingname"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Project string `json:"project"`
- Projectid string `json:"projectid"`
- Redundantrouter bool `json:"redundantrouter"`
- Related string `json:"related"`
- Reservediprange string `json:"reservediprange"`
- Restartrequired bool `json:"restartrequired"`
- Service []UpdateVPCResponseNetworkService `json:"service"`
- Specifyipranges bool `json:"specifyipranges"`
- State string `json:"state"`
- Strechedl2subnet bool `json:"strechedl2subnet"`
- Subdomainaccess bool `json:"subdomainaccess"`
- Tags []Tags `json:"tags"`
- Traffictype string `json:"traffictype"`
- Type string `json:"type"`
- Vlan string `json:"vlan"`
- Vpcid string `json:"vpcid"`
- Vpcname string `json:"vpcname"`
- Zoneid string `json:"zoneid"`
- Zonename string `json:"zonename"`
- Zonesnetworkspans []interface{} `json:"zonesnetworkspans"`
-}
-
-type UpdateVPCResponseNetworkService struct {
- Capability []UpdateVPCResponseNetworkServiceCapability `json:"capability"`
- Name string `json:"name"`
- Provider []UpdateVPCResponseNetworkServiceProvider `json:"provider"`
-}
-
-type UpdateVPCResponseNetworkServiceProvider struct {
- Canenableindividualservice bool `json:"canenableindividualservice"`
- Destinationphysicalnetworkid string `json:"destinationphysicalnetworkid"`
- Id string `json:"id"`
- Name string `json:"name"`
- Physicalnetworkid string `json:"physicalnetworkid"`
- Servicelist []string `json:"servicelist"`
- State string `json:"state"`
-}
-
-type UpdateVPCResponseNetworkServiceCapability struct {
- Canchooseservicecapability bool `json:"canchooseservicecapability"`
- Name string `json:"name"`
- Value string `json:"value"`
-}
-
type UpdateVPCOfferingParams struct {
p map[string]interface{}
}
diff --git a/examples/AddHost.go b/cloudstack/VPCService_test.go
similarity index 52%
copy from examples/AddHost.go
copy to cloudstack/VPCService_test.go
index 20b8fcf..80231bc 100644
--- a/examples/AddHost.go
+++ b/cloudstack/VPCService_test.go
@@ -17,28 +17,32 @@
// under the License.
//
-package main
+package cloudstack
import (
- "encoding/json"
"fmt"
- "github.com/apache/cloudstack-go/v2/cloudstack"
- "log"
+ "net/http"
+ "net/http/httptest"
+ "testing"
)
-func main() {
- cs := cloudstack.NewAsyncClient(ApiUrl, ApiKey, SecretKey, false)
- p := cs.Host.NewAddHostParams("Simulator", "password", PodId,
- "http://sim/c0/h0", "root", ZoneId)
- resp, err := cs.Host.AddHost(p)
+func TestVPCService_RestartVPC(t *testing.T) {
+ server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
+ apiName := "restartVPC"
+ response, err := ParseAsyncResponse(apiName, "VPCService", *request)
+ if err != nil {
+ t.Errorf("Failed to parse response, due to: %v", err)
+ }
+ fmt.Fprintln(writer, response)
+ }))
+ defer server.Close()
+ client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
+ params := client.VPC.NewRestartVPCParams("f9ec95f3-70be-448a-8ba2-cb6388dce55a")
+ resp, err := client.VPC.RestartVPC(params)
if err != nil {
- fmt.Errorf("Failed to add host due to: %v", err)
+ t.Errorf("Failed to restart VPC network due to: %v", err)
}
-
- b, err := json.MarshalIndent(resp, "", " ")
- if err != nil {
- log.Printf("%v", err)
- return
+ if resp == nil {
+ t.Errorf("Failed to restart VPC network")
}
- log.Printf("Host response : %v", string(b))
-}
\ No newline at end of file
+}
diff --git a/cloudstack/VPNService.go b/cloudstack/VPNService.go
index 04de5ce..741b935 100644
--- a/cloudstack/VPNService.go
+++ b/cloudstack/VPNService.go
@@ -926,6 +926,7 @@ type CreateVpnCustomerGatewayResponse struct {
Esppolicy string `json:"esppolicy"`
Forceencap bool `json:"forceencap"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Ikelifetime int64 `json:"ikelifetime"`
Ikepolicy string `json:"ikepolicy"`
@@ -2270,6 +2271,7 @@ type VpnCustomerGateway struct {
Esppolicy string `json:"esppolicy"`
Forceencap bool `json:"forceencap"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Ikelifetime int64 `json:"ikelifetime"`
Ikepolicy string `json:"ikepolicy"`
@@ -3732,6 +3734,7 @@ type UpdateVpnCustomerGatewayResponse struct {
Esppolicy string `json:"esppolicy"`
Forceencap bool `json:"forceencap"`
Gateway string `json:"gateway"`
+ Hasannotations bool `json:"hasannotations"`
Id string `json:"id"`
Ikelifetime int64 `json:"ikelifetime"`
Ikepolicy string `json:"ikepolicy"`
diff --git a/examples/AddHost.go b/cloudstack/VPNService_test.go
similarity index 51%
copy from examples/AddHost.go
copy to cloudstack/VPNService_test.go
index 20b8fcf..41acffc 100644
--- a/examples/AddHost.go
+++ b/cloudstack/VPNService_test.go
@@ -17,28 +17,34 @@
// under the License.
//
-package main
+package cloudstack
import (
- "encoding/json"
"fmt"
- "github.com/apache/cloudstack-go/v2/cloudstack"
- "log"
+ "net/http"
+ "net/http/httptest"
+ "testing"
)
-func main() {
- cs := cloudstack.NewAsyncClient(ApiUrl, ApiKey, SecretKey, false)
- p := cs.Host.NewAddHostParams("Simulator", "password", PodId,
- "http://sim/c0/h0", "root", ZoneId)
- resp, err := cs.Host.AddHost(p)
+func TestVPNService_DeleteRemoteAccessVpn(t *testing.T) {
+ server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
+ apiName := "deleteRemoteAccessVpn"
+ response, err := ParseAsyncResponse(apiName, "VPNService", *request)
+ if err != nil {
+ t.Errorf("Failed to parse response, due to: %v", err)
+ }
+ fmt.Fprintf(writer, response)
+ }))
+ defer server.Close()
+ client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
+ params := client.VPN.NewDeleteRemoteAccessVpnParams("8dcd19e9-dbe6-4576-9602-4c3350918983")
+ resp, err := client.VPN.DeleteRemoteAccessVpn(params)
if err != nil {
- fmt.Errorf("Failed to add host due to: %v", err)
+ t.Errorf("Failed to delete remote access VPN due to: %v", err)
+ return
}
- b, err := json.MarshalIndent(resp, "", " ")
- if err != nil {
- log.Printf("%v", err)
- return
+ if resp == nil {
+ t.Errorf("Failed to update project name")
}
- log.Printf("Host response : %v", string(b))
-}
\ No newline at end of file
+}
diff --git a/cloudstack/VirtualMachineService.go b/cloudstack/VirtualMachineService.go
index f271134..88b55fd 100644
--- a/cloudstack/VirtualMachineService.go
+++ b/cloudstack/VirtualMachineService.go
@@ -57,7 +57,7 @@ type VirtualMachineServiceIface interface {
MigrateVirtualMachine(p *MigrateVirtualMachineParams) (*MigrateVirtualMachineResponse, error)
NewMigrateVirtualMachineParams(virtualmachineid string) *MigrateVirtualMachineParams
MigrateVirtualMachineWithVolume(p *MigrateVirtualMachineWithVolumeParams) (*MigrateVirtualMachineWithVolumeResponse, error)
- NewMigrateVirtualMachineWithVolumeParams(hostid string, virtualmachineid string) *MigrateVirtualMachineWithVolumeParams
+ NewMigrateVirtualMachineWithVolumeParams(virtualmachineid string) *MigrateVirtualMachineWithVolumeParams
RebootVirtualMachine(p *RebootVirtualMachineParams) (*RebootVirtualMachineResponse, error)
NewRebootVirtualMachineParams(id string) *RebootVirtualMachineParams
RecoverVirtualMachine(p *RecoverVirtualMachineParams) (*RecoverVirtualMachineResponse, error)
@@ -258,9 +258,11 @@ type AddNicToVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -270,6 +272,7 @@ type AddNicToVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -282,14 +285,17 @@ type AddNicToVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []AddNicToVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -547,9 +553,11 @@ type AssignVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -559,6 +567,7 @@ type AssignVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -571,14 +580,17 @@ type AssignVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []AssignVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -742,7 +754,7 @@ func (s *VirtualMachineService) NewChangeServiceForVirtualMachineParams(id strin
return p
}
-// Changes the service offering for a virtual machine. The virtual machine must be in a "Stopped" state for this command to take effect.
+// Changes the service offering for a virtual machine. The virtual machine must be in a "Stopped" state for this command to take effect. Note that it only changes the VM's compute offering and it does not update the root volume offering. If the Service Offering has a root disk size the volume will be resized only if using API command 'scaleVirtualMachine'.
func (s *VirtualMachineService) ChangeServiceForVirtualMachine(p *ChangeServiceForVirtualMachineParams) (*ChangeServiceForVirtualMachineResponse, error) {
resp, err := s.cs.newRequest("changeServiceForVirtualMachine", p.toURLValues())
if err != nil {
@@ -784,9 +796,11 @@ type ChangeServiceForVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -796,6 +810,7 @@ type ChangeServiceForVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -808,14 +823,17 @@ type ChangeServiceForVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []ChangeServiceForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -1034,6 +1052,10 @@ func (p *DeployVirtualMachineParams) toURLValues() url.Values {
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
+ if v, found := p.p["dynamicscalingenabled"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("dynamicscalingenabled", vv)
+ }
if v, found := p.p["extraconfig"]; found {
u.Set("extraconfig", v.(string))
}
@@ -1401,6 +1423,21 @@ func (p *DeployVirtualMachineParams) GetDomainid() (string, bool) {
return value, ok
}
+func (p *DeployVirtualMachineParams) SetDynamicscalingenabled(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["dynamicscalingenabled"] = v
+}
+
+func (p *DeployVirtualMachineParams) GetDynamicscalingenabled() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["dynamicscalingenabled"].(bool)
+ return value, ok
+}
+
func (p *DeployVirtualMachineParams) SetExtraconfig(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1877,9 +1914,11 @@ type DeployVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -1889,6 +1928,7 @@ type DeployVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -1901,14 +1941,17 @@ type DeployVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []DeployVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -2132,9 +2175,11 @@ type DestroyVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -2144,6 +2189,7 @@ type DestroyVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -2156,14 +2202,17 @@ type DestroyVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []DestroyVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -2399,6 +2448,9 @@ func (p *ListVirtualMachinesParams) toURLValues() url.Values {
if v, found := p.p["affinitygroupid"]; found {
u.Set("affinitygroupid", v.(string))
}
+ if v, found := p.p["clusterid"]; found {
+ u.Set("clusterid", v.(string))
+ }
if v, found := p.p["details"]; found {
vv := strings.Join(v.([]string), ",")
u.Set("details", vv)
@@ -2483,6 +2535,10 @@ func (p *ListVirtualMachinesParams) toURLValues() url.Values {
if v, found := p.p["serviceofferingid"]; found {
u.Set("serviceofferingid", v.(string))
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["state"]; found {
u.Set("state", v.(string))
}
@@ -2544,6 +2600,21 @@ func (p *ListVirtualMachinesParams) GetAffinitygroupid() (string, bool) {
return value, ok
}
+func (p *ListVirtualMachinesParams) SetClusterid(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["clusterid"] = v
+}
+
+func (p *ListVirtualMachinesParams) GetClusterid() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["clusterid"].(string)
+ return value, ok
+}
+
func (p *ListVirtualMachinesParams) SetDetails(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -2889,6 +2960,21 @@ func (p *ListVirtualMachinesParams) GetServiceofferingid() (string, bool) {
return value, ok
}
+func (p *ListVirtualMachinesParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListVirtualMachinesParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListVirtualMachinesParams) SetState(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -3132,9 +3218,11 @@ type VirtualMachine struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -3144,6 +3232,7 @@ type VirtualMachine struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -3156,14 +3245,17 @@ type VirtualMachine struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []VirtualMachineSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -3341,6 +3433,10 @@ func (p *ListVirtualMachinesMetricsParams) toURLValues() url.Values {
if v, found := p.p["serviceofferingid"]; found {
u.Set("serviceofferingid", v.(string))
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["state"]; found {
u.Set("state", v.(string))
}
@@ -3744,6 +3840,21 @@ func (p *ListVirtualMachinesMetricsParams) GetServiceofferingid() (string, bool)
return value, ok
}
+func (p *ListVirtualMachinesMetricsParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListVirtualMachinesMetricsParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListVirtualMachinesMetricsParams) SetState(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -3991,9 +4102,11 @@ type VirtualMachinesMetric struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Ipaddress string `json:"ipaddress"`
@@ -4004,6 +4117,7 @@ type VirtualMachinesMetric struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -4019,14 +4133,17 @@ type VirtualMachinesMetric struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []VirtualMachinesMetricSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -4120,6 +4237,10 @@ func (p *MigrateVirtualMachineParams) toURLValues() url.Values {
if p.p == nil {
return u
}
+ if v, found := p.p["autoselect"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("autoselect", vv)
+ }
if v, found := p.p["hostid"]; found {
u.Set("hostid", v.(string))
}
@@ -4132,6 +4253,21 @@ func (p *MigrateVirtualMachineParams) toURLValues() url.Values {
return u
}
+func (p *MigrateVirtualMachineParams) SetAutoselect(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["autoselect"] = v
+}
+
+func (p *MigrateVirtualMachineParams) GetAutoselect() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["autoselect"].(bool)
+ return value, ok
+}
+
func (p *MigrateVirtualMachineParams) SetHostid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -4248,9 +4384,11 @@ type MigrateVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -4260,6 +4398,7 @@ type MigrateVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -4272,14 +4411,17 @@ type MigrateVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []MigrateVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -4451,10 +4593,9 @@ func (p *MigrateVirtualMachineWithVolumeParams) GetVirtualmachineid() (string, b
// You should always use this function to get a new MigrateVirtualMachineWithVolumeParams instance,
// as then you are sure you have configured all required params
-func (s *VirtualMachineService) NewMigrateVirtualMachineWithVolumeParams(hostid string, virtualmachineid string) *MigrateVirtualMachineWithVolumeParams {
+func (s *VirtualMachineService) NewMigrateVirtualMachineWithVolumeParams(virtualmachineid string) *MigrateVirtualMachineWithVolumeParams {
p := &MigrateVirtualMachineWithVolumeParams{}
p.p = make(map[string]interface{})
- p.p["hostid"] = hostid
p.p["virtualmachineid"] = virtualmachineid
return p
}
@@ -4521,9 +4662,11 @@ type MigrateVirtualMachineWithVolumeResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -4533,6 +4676,7 @@ type MigrateVirtualMachineWithVolumeResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -4545,14 +4689,17 @@ type MigrateVirtualMachineWithVolumeResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []MigrateVirtualMachineWithVolumeResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -4650,6 +4797,10 @@ func (p *RebootVirtualMachineParams) toURLValues() url.Values {
vv := strconv.FormatBool(v.(bool))
u.Set("bootintosetup", vv)
}
+ if v, found := p.p["forced"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("forced", vv)
+ }
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
@@ -4671,6 +4822,21 @@ func (p *RebootVirtualMachineParams) GetBootintosetup() (bool, bool) {
return value, ok
}
+func (p *RebootVirtualMachineParams) SetForced(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["forced"] = v
+}
+
+func (p *RebootVirtualMachineParams) GetForced() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["forced"].(bool)
+ return value, ok
+}
+
func (p *RebootVirtualMachineParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -4757,9 +4923,11 @@ type RebootVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -4769,6 +4937,7 @@ type RebootVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -4781,14 +4950,17 @@ type RebootVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []RebootVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -4954,9 +5126,11 @@ type RecoverVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -4966,6 +5140,7 @@ type RecoverVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -4978,14 +5153,17 @@ type RecoverVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []RecoverVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -5190,9 +5368,11 @@ type RemoveNicFromVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -5202,6 +5382,7 @@ type RemoveNicFromVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -5214,14 +5395,17 @@ type RemoveNicFromVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []RemoveNicFromVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -5407,9 +5591,11 @@ type ResetPasswordForVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -5419,6 +5605,7 @@ type ResetPasswordForVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -5431,14 +5618,17 @@ type ResetPasswordForVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []ResetPasswordForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -5642,9 +5832,11 @@ type RestoreVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -5654,6 +5846,7 @@ type RestoreVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -5666,14 +5859,17 @@ type RestoreVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []RestoreVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -5837,7 +6033,7 @@ func (s *VirtualMachineService) NewScaleVirtualMachineParams(id string, serviceo
return p
}
-// Scales the virtual machine to a new service offering.
+// Scales the virtual machine to a new service offering. This command also takes into account the Volume and it may resize the root disk size according to the service offering.
func (s *VirtualMachineService) ScaleVirtualMachine(p *ScaleVirtualMachineParams) (*ScaleVirtualMachineResponse, error) {
resp, err := s.cs.newRequest("scaleVirtualMachine", p.toURLValues())
if err != nil {
@@ -6066,9 +6262,11 @@ type StartVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -6078,6 +6276,7 @@ type StartVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -6090,14 +6289,17 @@ type StartVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []StartVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -6302,9 +6504,11 @@ type StopVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -6314,6 +6518,7 @@ type StopVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -6326,14 +6531,17 @@ type StopVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []StopVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -6538,9 +6746,11 @@ type UpdateDefaultNicForVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -6550,6 +6760,7 @@ type UpdateDefaultNicForVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -6562,14 +6773,17 @@ type UpdateDefaultNicForVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []UpdateDefaultNicForVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
@@ -7051,9 +7265,11 @@ type UpdateVirtualMachineResponse struct {
Groupid string `json:"groupid"`
Guestosid string `json:"guestosid"`
Haenable bool `json:"haenable"`
+ Hasannotations bool `json:"hasannotations"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Instancename string `json:"instancename"`
Isdynamicallyscalable bool `json:"isdynamicallyscalable"`
@@ -7063,6 +7279,7 @@ type UpdateVirtualMachineResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Keypair string `json:"keypair"`
+ Lastupdated string `json:"lastupdated"`
Memory int `json:"memory"`
Memoryintfreekbs int64 `json:"memoryintfreekbs"`
Memorykbs int64 `json:"memorykbs"`
@@ -7075,14 +7292,17 @@ type UpdateVirtualMachineResponse struct {
Ostypeid string `json:"ostypeid"`
Password string `json:"password"`
Passwordenabled bool `json:"passwordenabled"`
+ Pooltype string `json:"pooltype"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
- Readonlyuidetails string `json:"readonlyuidetails"`
+ Readonlydetails string `json:"readonlydetails"`
+ Receivedbytes int64 `json:"receivedbytes"`
Rootdeviceid int64 `json:"rootdeviceid"`
Rootdevicetype string `json:"rootdevicetype"`
Securitygroup []UpdateVirtualMachineResponseSecuritygroup `json:"securitygroup"`
+ Sentbytes int64 `json:"sentbytes"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Servicestate string `json:"servicestate"`
diff --git a/cloudstack/VirtualMachineService_mock.go b/cloudstack/VirtualMachineService_mock.go
index 8117498..3de3537 100644
--- a/cloudstack/VirtualMachineService_mock.go
+++ b/cloudstack/VirtualMachineService_mock.go
@@ -513,17 +513,17 @@ func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewMigrateVirtualMachinePa
}
// NewMigrateVirtualMachineWithVolumeParams mocks base method.
-func (m *MockVirtualMachineServiceIface) NewMigrateVirtualMachineWithVolumeParams(hostid, virtualmachineid string) *MigrateVirtualMachineWithVolumeParams {
+func (m *MockVirtualMachineServiceIface) NewMigrateVirtualMachineWithVolumeParams(virtualmachineid string) *MigrateVirtualMachineWithVolumeParams {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "NewMigrateVirtualMachineWithVolumeParams", hostid, virtualmachineid)
+ ret := m.ctrl.Call(m, "NewMigrateVirtualMachineWithVolumeParams", virtualmachineid)
ret0, _ := ret[0].(*MigrateVirtualMachineWithVolumeParams)
return ret0
}
// NewMigrateVirtualMachineWithVolumeParams indicates an expected call of NewMigrateVirtualMachineWithVolumeParams.
-func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewMigrateVirtualMachineWithVolumeParams(hostid, virtualmachineid interface{}) *gomock.Call {
+func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewMigrateVirtualMachineWithVolumeParams(virtualmachineid interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateVirtualMachineWithVolumeParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewMigrateVirtualMachineWithVolumeParams), hostid, virtualmachineid)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateVirtualMachineWithVolumeParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewMigrateVirtualMachineWithVolumeParams), virtualmachineid)
}
// NewRebootVirtualMachineParams mocks base method.
diff --git a/cloudstack/VirtualMachineService_test.go b/cloudstack/VirtualMachineService_test.go
index 1a68736..3cc9cdc 100644
--- a/cloudstack/VirtualMachineService_test.go
+++ b/cloudstack/VirtualMachineService_test.go
@@ -145,3 +145,26 @@ func TestVirtualMachineService_ListVirtualMachines(t *testing.T) {
t.Errorf("Failed to list VM")
}
}
+
+func TestVirtualMachineService_ScaleVirtualMachine(t *testing.T) {
+ server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
+ apiName := "scaleVirtualMachine"
+ response, err := ParseAsyncResponse(apiName, "VirtualMachineService", *r)
+ if err != nil {
+ t.Errorf("Failed to read response data due to: %v", err)
+ }
+ fmt.Fprintln(writer, response)
+ }))
+ defer server.Close()
+ client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
+ params := client.VirtualMachine.NewScaleVirtualMachineParams("88dedd6b-4fc0-44bf-b76f-441a13bc1f99", "57aba75e-5567-44c9-bfcc-c2c14503a5a6")
+ resp, err := client.VirtualMachine.ScaleVirtualMachine(params)
+ if err != nil {
+ t.Errorf("Failed to scale VM due to %v", err)
+ return
+ }
+
+ if resp == nil {
+ t.Errorf("Failed to list VM")
+ }
+}
diff --git a/cloudstack/VolumeService.go b/cloudstack/VolumeService.go
index 91aa924..60cc2b0 100644
--- a/cloudstack/VolumeService.go
+++ b/cloudstack/VolumeService.go
@@ -196,6 +196,7 @@ type AttachVolumeResponse struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -225,6 +226,7 @@ type AttachVolumeResponse struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
@@ -556,6 +558,7 @@ type CreateVolumeResponse struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -585,6 +588,7 @@ type CreateVolumeResponse struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
@@ -821,6 +825,7 @@ type DetachVolumeResponse struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -850,6 +855,7 @@ type DetachVolumeResponse struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
@@ -1959,6 +1965,7 @@ type Volume struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -1988,6 +1995,7 @@ type Volume struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
@@ -2156,6 +2164,7 @@ type MigrateVolumeResponse struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -2185,6 +2194,7 @@ type MigrateVolumeResponse struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
@@ -2391,6 +2401,7 @@ type ResizeVolumeResponse struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -2420,6 +2431,7 @@ type ResizeVolumeResponse struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
@@ -2457,6 +2469,9 @@ func (p *UpdateVolumeParams) toURLValues() url.Values {
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
+ if v, found := p.p["name"]; found {
+ u.Set("name", v.(string))
+ }
if v, found := p.p["path"]; found {
u.Set("path", v.(string))
}
@@ -2529,6 +2544,21 @@ func (p *UpdateVolumeParams) GetId() (string, bool) {
return value, ok
}
+func (p *UpdateVolumeParams) SetName(v string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["name"] = v
+}
+
+func (p *UpdateVolumeParams) GetName() (string, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["name"].(string)
+ return value, ok
+}
+
func (p *UpdateVolumeParams) SetPath(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -2640,6 +2670,7 @@ type UpdateVolumeResponse struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -2669,6 +2700,7 @@ type UpdateVolumeResponse struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
@@ -2946,6 +2978,7 @@ type UploadVolumeResponse struct {
Displayvolume bool `json:"displayvolume"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
+ Hasannotations bool `json:"hasannotations"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Isextractable bool `json:"isextractable"`
@@ -2975,6 +3008,7 @@ type UploadVolumeResponse struct {
Storage string `json:"storage"`
Storageid string `json:"storageid"`
Storagetype string `json:"storagetype"`
+ Supportsstoragesnapshot bool `json:"supportsstoragesnapshot"`
Tags []Tags `json:"tags"`
Templatedisplaytext string `json:"templatedisplaytext"`
Templateid string `json:"templateid"`
diff --git a/cloudstack/ZoneService.go b/cloudstack/ZoneService.go
index b11de52..58c99f5 100644
--- a/cloudstack/ZoneService.go
+++ b/cloudstack/ZoneService.go
@@ -360,6 +360,8 @@ type CreateZoneResponse struct {
Domainid string `json:"domainid"`
Domainname string `json:"domainname"`
Guestcidraddress string `json:"guestcidraddress"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Internaldns1 string `json:"internaldns1"`
Internaldns2 string `json:"internaldns2"`
@@ -1152,6 +1154,10 @@ func (p *ListZonesParams) toURLValues() url.Values {
vv := strconv.FormatBool(v.(bool))
u.Set("showcapacities", vv)
}
+ if v, found := p.p["showicon"]; found {
+ vv := strconv.FormatBool(v.(bool))
+ u.Set("showicon", vv)
+ }
if v, found := p.p["tags"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
@@ -1297,6 +1303,21 @@ func (p *ListZonesParams) GetShowcapacities() (bool, bool) {
return value, ok
}
+func (p *ListZonesParams) SetShowicon(v bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ p.p["showicon"] = v
+}
+
+func (p *ListZonesParams) GetShowicon() (bool, bool) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ value, ok := p.p["showicon"].(bool)
+ return value, ok
+}
+
func (p *ListZonesParams) SetTags(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1435,6 +1456,8 @@ type Zone struct {
Domainid string `json:"domainid"`
Domainname string `json:"domainname"`
Guestcidraddress string `json:"guestcidraddress"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Internaldns1 string `json:"internaldns1"`
Internaldns2 string `json:"internaldns2"`
@@ -1904,6 +1927,8 @@ type UpdateZoneResponse struct {
Domainid string `json:"domainid"`
Domainname string `json:"domainname"`
Guestcidraddress string `json:"guestcidraddress"`
+ Hasannotations bool `json:"hasannotations"`
+ Icon string `json:"icon"`
Id string `json:"id"`
Internaldns1 string `json:"internaldns1"`
Internaldns2 string `json:"internaldns2"`
diff --git a/cloudstack/testdata/LimitServiceData.json b/cloudstack/testdata/LimitServiceData.json
new file mode 100644
index 0000000..e5a427b
--- /dev/null
+++ b/cloudstack/testdata/LimitServiceData.json
@@ -0,0 +1,7 @@
+{
+ "resetApiLimit": {
+ "resetapilimitresponse": {
+ "success": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/cloudstack/testdata/NetworkACLServiceData.json b/cloudstack/testdata/NetworkACLServiceData.json
new file mode 100644
index 0000000..fffac7d
--- /dev/null
+++ b/cloudstack/testdata/NetworkACLServiceData.json
@@ -0,0 +1,32 @@
+{
+ "updateNetworkACLList": {
+ "updateNetworkACLList": {
+ "updatenetworkacllistresponse": {
+ "jobid": "6dd51379-b8cf-422c-a6ef-f96c07798c97"
+ }
+ },
+ "queryAsyncJobResult": {
+ "queryasyncjobresultresponse": {
+ "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
+ "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
+ "cmd": "org.apache.cloudstack.api.command.user.network.UpdateNetworkACLListCmd",
+ "jobstatus": 1,
+ "jobprocstatus": 0,
+ "jobresultcode": 0,
+ "jobresulttype": "object",
+ "jobresult": {
+ "networkacllist": {
+ "id": "a31e11a0-57fe-41df-be7a-34d359673061",
+ "name": "test",
+ "description": "testtest",
+ "vpcid": "40419d33-6d48-4c54-ae2e-5c312b401593",
+ "fordisplay": true
+ }
+ },
+ "created": "2021-10-13T04:46:30+0000",
+ "completed": "2021-10-13T04:46:30+0000",
+ "jobid": "6dd51379-b8cf-422c-a6ef-f96c07798c97"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/cloudstack/testdata/ProjectServiceData.json b/cloudstack/testdata/ProjectServiceData.json
index 0eb7a78..907bff0 100644
--- a/cloudstack/testdata/ProjectServiceData.json
+++ b/cloudstack/testdata/ProjectServiceData.json
@@ -292,5 +292,21 @@
"jobid": "1330d540-c099-4943-ac22-3fd5846c0e5b"
}
}
+ },
+ "listProjectRolePermissions": {
+ "listprojectrolepermissionsresponse": {
+ "count": 1,
+ "projectrolepermission": [
+ {
+ "id": "e68daeca-556f-4fd2-b4ee-378cb994ef76",
+ "projectroleid": "fa089002-d055-46b5-aa0a-18f2eae2b4fc",
+ "projectid": "69646881-8d7f-4800-987d-106698a42608",
+ "projectrolename": "testProjectPerm",
+ "rule": "activateProject",
+ "permission": "deny",
+ "description": ""
+ }
+ ]
+ }
}
}
\ No newline at end of file
diff --git a/cloudstack/testdata/VPCServiceData.json b/cloudstack/testdata/VPCServiceData.json
new file mode 100644
index 0000000..25b0050
--- /dev/null
+++ b/cloudstack/testdata/VPCServiceData.json
@@ -0,0 +1,26 @@
+{
+ "restartVPC": {
+ "restartVPC": {
+ "restartvpcresponse": {
+ "jobid": "98272f42-917c-4286-8c05-4e38d85d32e0"
+ }
+ },
+ "queryAsyncJobResult": {
+ "queryasyncjobresultresponse": {
+ "accountid": "0644f184-269b-11ec-ad12-1e00bc0003a5",
+ "userid": "06466ac0-269b-11ec-ad12-1e00bc0003a5",
+ "cmd": "org.apache.cloudstack.api.command.user.vpc.RestartVPCCmd",
+ "jobstatus": 1,
+ "jobprocstatus": 0,
+ "jobresultcode": 0,
+ "jobresulttype": "object",
+ "jobresult": {
+ "success": true
+ },
+ "created": "2021-10-13T04:36:30+0000",
+ "completed": "2021-10-13T04:36:30+0000",
+ "jobid": "98272f42-917c-4286-8c05-4e38d85d32e0"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/cloudstack/testdata/VPNServiceData.json b/cloudstack/testdata/VPNServiceData.json
new file mode 100644
index 0000000..790ede9
--- /dev/null
+++ b/cloudstack/testdata/VPNServiceData.json
@@ -0,0 +1,26 @@
+{
+ "deleteRemoteAccessVpn": {
+ "deleteRemoteAccessVpn": {
+ "deleteremoteaccessvpnresponse": {
+ "jobid": "3697537c-f796-44f2-b997-0b71ff4f4e07"
+ }
+ },
+ "queryAsyncJobResult": {
+ "queryasyncjobresultresponse": {
+ "accountid": "7a2fad8f-2bde-11ec-b173-1e0086000207",
+ "cmd": "org.apache.cloudstack.api.command.user.vpn.DeleteRemoteAccessVpnCmd",
+ "completed": "2021-10-13T07:38:53+0000",
+ "created": "2021-10-13T07:38:51+0000",
+ "jobid": "50bdd6c2-6958-48ba-94fe-3e6ec410dcce",
+ "jobprocstatus": 0,
+ "jobresult": {
+ "success": true
+ },
+ "jobresultcode": 0,
+ "jobresulttype": "object",
+ "jobstatus": 1,
+ "userid": "7a309dc2-2bde-11ec-b173-1e0086000207"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/cloudstack/testdata/VirtualMachineServiceData.json b/cloudstack/testdata/VirtualMachineServiceData.json
index 72dd165..918a8b1 100644
--- a/cloudstack/testdata/VirtualMachineServiceData.json
+++ b/cloudstack/testdata/VirtualMachineServiceData.json
@@ -436,5 +436,110 @@
}
]
}
+ },
+ "scaleVirtualMachine": {
+ "scaleVirtualMachine": {
+ "scalevirtualmachineresponse": {
+ "jobid": "f9a9af61-47ea-4fb7-acc9-93ea50f12042"
+ }
+ },
+ "queryAsyncJobResult": {
+ "queryasyncjobresultresponse": {
+ "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
+ "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
+ "cmd": "org.apache.cloudstack.api.command.admin.vm.ScaleVMCmdByAdmin",
+ "jobstatus": 1,
+ "jobprocstatus": 0,
+ "jobresultcode": 0,
+ "jobresulttype": "object",
+ "jobresult": {
+ "virtualmachine": {
+ "id": "88dedd6b-4fc0-44bf-b76f-441a13bc1f99",
+ "name": "QA-88dedd6b-4fc0-44bf-b76f-441a13bc1f99",
+ "displayname": "QA-88dedd6b-4fc0-44bf-b76f-441a13bc1f99",
+ "account": "admin",
+ "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
+ "username": "admin",
+ "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
+ "domain": "ROOT",
+ "created": "2020-05-22T19:52:22+0000",
+ "lastupdated": "2021-10-06T09:57:19+0000",
+ "state": "Stopped",
+ "haenable": false,
+ "zoneid": "04ccc336-d730-42fe-8ff6-5ae36e141e81",
+ "zonename": "SimZone1",
+ "templateid": "56217438-4f36-450b-9246-850a10a3e57b",
+ "templatename": "macha-sim1",
+ "templatedisplaytext": "macha-simm",
+ "passwordenabled": true,
+ "isoid": "169fe81d-47e0-4119-b38c-f6ce42dcf451",
+ "isoname": "k8s-1.16.3-Kubernetes-Binaries-ISO",
+ "isodisplaytext": "k8s-1.16.3-Kubernetes-Binaries-IS",
+ "serviceofferingid": "57aba75e-5567-44c9-bfcc-c2c14503a5a6",
+ "serviceofferingname": "Medium Instanc",
+ "backupofferingid": "7c42d74e-c029-4431-9025-6caa8b903472",
+ "backupofferingname": "BackupGoldDummy",
+ "cpunumber": 1,
+ "cpuspeed": 1000,
+ "memory": 1024,
+ "guestosid": "12fea95b-5fe0-11ea-9a56-1e006800018c",
+ "rootdeviceid": 0,
+ "rootdevicetype": "ROOT",
+ "securitygroup": [],
+ "nic": [
+ {
+ "id": "c26193a6-9b41-4149-b836-e48bc46fc5c8",
+ "networkid": "b9bb5ef5-16cd-413c-996e-3671d8a2bc20",
+ "networkname": "test",
+ "netmask": "255.255.255.0",
+ "gateway": "10.1.1.1",
+ "ipaddress": "10.1.1.208",
+ "traffictype": "Guest",
+ "type": "Isolated",
+ "isdefault": false,
+ "macaddress": "02:00:63:59:00:05",
+ "secondaryip": [],
+ "extradhcpoption": [],
+ "deviceid": "1"
+ },
+ {
+ "id": "d9f8203d-e680-438a-86b6-327c69271011",
+ "networkid": "cc39d938-5ea0-4d9c-b89d-421da3274e54",
+ "networkname": "testNet2",
+ "netmask": "255.255.255.0",
+ "gateway": "10.1.1.1",
+ "ipaddress": "10.1.1.177",
+ "traffictype": "Guest",
+ "type": "Isolated",
+ "isdefault": true,
+ "macaddress": "02:00:22:f7:00:08",
+ "secondaryip": [],
+ "extradhcpoption": [],
+ "deviceid": "0"
+ }
+ ],
+ "hypervisor": "Simulator",
+ "instancename": "i-2-101-QA",
+ "details": {
+ "keyboard": "us",
+ "Message.ReservedCapacityFreed.Flag": "true"
+ },
+ "affinitygroup": [],
+ "displayvm": true,
+ "isdynamicallyscalable": false,
+ "ostypeid": "12fea95b-5fe0-11ea-9a56-1e006800018c",
+ "osdisplayname": "CentOS 6 (64-bit)",
+ "pooltype": "NetworkFilesystem",
+ "receivedbytes": 0,
+ "sentbytes": 0,
+ "tags": [],
+ "hasannotations": true
+ }
+ },
+ "created": "2021-10-13T04:54:55+0000",
+ "completed": "2021-10-13T04:54:56+0000",
+ "jobid": "f9a9af61-47ea-4fb7-acc9-93ea50f12042"
+ }
+ }
}
}
\ No newline at end of file
diff --git a/examples/ACSDetails.go b/examples/ACSOps.go
similarity index 86%
rename from examples/ACSDetails.go
rename to examples/ACSOps.go
index 78ddc78..55feee4 100644
--- a/examples/ACSDetails.go
+++ b/examples/ACSOps.go
@@ -23,6 +23,12 @@ var (
ApiUrl = "http://qa.cloudstack.cloud:8080/client/api"
SecretKey = "PZAM4nrxKbMnlq8RT0GMqAJyYtJGMN5x-PN7owa9vSmE58zObTcn4Yc8pgLeznln1aEUkHH_d2S-QQTt3E2Azw"
ApiKey = "DN7uIwbqAMASSB1GUGHWvXqUlDDBf7H6A3XI-kNeXahW5LMUoqgfDEDWMv8zWKaj51fDozg8fjqc7tGCSozScA"
- ZoneId = "b6afade4-1919-4f0b-a785-12ff05a4d383"
- PodId = "83a739b7-bf5f-481e-8016-3a6045045e0b"
+ ZoneId = "b6afade4-1919-4f0b-a785-12ff05a4d383"
+ PodId = "83a739b7-bf5f-481e-8016-3a6045045e0b"
)
+
+func main() {
+ AddHost()
+ CreateDomain()
+ PerformHostOperations()
+}
diff --git a/examples/AddHost.go b/examples/AddHost.go
index 20b8fcf..f9af25e 100644
--- a/examples/AddHost.go
+++ b/examples/AddHost.go
@@ -22,14 +22,17 @@ package main
import (
"encoding/json"
"fmt"
- "github.com/apache/cloudstack-go/v2/cloudstack"
"log"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
)
-func main() {
+func AddHost() {
cs := cloudstack.NewAsyncClient(ApiUrl, ApiKey, SecretKey, false)
- p := cs.Host.NewAddHostParams("Simulator", "password", PodId,
- "http://sim/c0/h0", "root", ZoneId)
+ p := cs.Host.NewAddHostParams("Simulator", PodId,
+ "http://sim/c0/h0", ZoneId)
+ p.SetUsername("root")
+ p.SetPassword("password")
resp, err := cs.Host.AddHost(p)
if err != nil {
fmt.Errorf("Failed to add host due to: %v", err)
@@ -37,8 +40,8 @@ func main() {
b, err := json.MarshalIndent(resp, "", " ")
if err != nil {
- log.Printf("%v", err)
+ fmt.Errorf("%v", err)
return
}
log.Printf("Host response : %v", string(b))
-}
\ No newline at end of file
+}
diff --git a/examples/CreateDeleteDomain.go b/examples/CreateDeleteDomain.go
index 96c4414..2053257 100644
--- a/examples/CreateDeleteDomain.go
+++ b/examples/CreateDeleteDomain.go
@@ -22,11 +22,12 @@ package main
import (
"encoding/json"
"fmt"
- "github.com/apache/cloudstack-go/v2/cloudstack"
"log"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
)
-func main() {
+func CreateDomain() {
domainName := "DummyDomain"
cs := cloudstack.NewAsyncClient(ApiUrl, ApiKey, SecretKey, false)
domain, _, err := cs.Domain.GetDomainByName(domainName)
@@ -63,7 +64,6 @@ func main() {
fmt.Printf("Create Domain response : %v\n\n", string(b))
}
-
func parseResponse(resp interface{}) ([]byte, error) {
b, err := json.MarshalIndent(resp, "", " ")
if err != nil {
diff --git a/examples/HostOperations.go b/examples/HostOperations.go
index 5cefdc0..dde9c5f 100644
--- a/examples/HostOperations.go
+++ b/examples/HostOperations.go
@@ -21,11 +21,12 @@ package main
import (
"encoding/json"
- "github.com/apache/cloudstack-go/v2/cloudstack"
"log"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
)
-func main() {
+func PerformHostOperations() {
cs := cloudstack.NewAsyncClient(ApiUrl, ApiKey, SecretKey, false)
zone, _, err := cs.Zone.GetZoneByID(ZoneId)
if err != nil {
diff --git a/generate/layout.go b/generate/layout.go
index fa82c51..6697420 100644
--- a/generate/layout.go
+++ b/generate/layout.go
@@ -355,6 +355,10 @@ var layout = apiInfo{
"suspendProject",
"updateProject",
"updateProjectInvitation",
+ "listProjectRolePermissions",
+ "createProjectRolePermission",
+ "updateProjectRolePermission",
+ "deleteProjectRolePermission",
},
"PoolService": {
"createStoragePool",
diff --git a/generate/listApis.json b/generate/listApis.json
index 6d97e6b..b2ac5f1 100644
--- a/generate/listApis.json
+++ b/generate/listApis.json
@@ -1,11 +1,71 @@
{
"api": [
{
+ "description": "Lists the resource icon for the specified resource(s)",
+ "isasync": false,
+ "name": "listResourceIcon",
+ "params": [
+ {
+ "description": "type of the resource",
+ "length": 255,
+ "name": "resourcetype",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "list of resources to upload the icon/image for",
+ "length": 255,
+ "name": "resourceids",
+ "required": true,
+ "type": "list"
+ }
+ ],
+ "related": "",
+ "response": [
+ {
+ "description": "the current status of the latest async job acting on this object",
+ "name": "jobstatus",
+ "type": "integer"
+ },
+ {
+ "description": "the UUID of the latest async job acting on this object",
+ "name": "jobid",
+ "type": "string"
+ },
+ {
+ "description": "id of the resource",
+ "name": "resourceid",
+ "type": "string"
+ },
+ {
+ "description": "resource type",
+ "name": "resourcetype",
+ "type": "resourceobjecttype"
+ },
+ {
+ "description": "base64 representation of resource icon",
+ "name": "base64image",
+ "type": "string"
+ },
+ {},
+ {}
+ ],
+ "since": "4.16.0.0"
+ },
+ {
"description": "Creates VPC offering",
"isasync": true,
"name": "createVPCOffering",
"params": [
{
+ "description": "the ID of the service offering for the VPC router appliance",
+ "length": 255,
+ "name": "serviceofferingid",
+ "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
+ "required": false,
+ "type": "uuid"
+ },
+ {
"description": "the ID of the containing zone(s), null for public offerings",
"length": 255,
"name": "zoneid",
@@ -15,20 +75,6 @@
"type": "list"
},
{
- "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network",
- "length": 255,
- "name": "serviceproviderlist",
- "required": false,
- "type": "map"
- },
- {
- "description": "the display text of the vpc offering",
- "length": 255,
- "name": "displaytext",
- "required": true,
- "type": "string"
- },
- {
"description": "services supported by the vpc offering",
"length": 255,
"name": "supportedservices",
@@ -44,40 +90,90 @@
"type": "map"
},
{
- "description": "the name of the vpc offering",
+ "description": "the ID of the containing domain(s), null for public offerings",
"length": 255,
- "name": "name",
+ "name": "domainid",
+ "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain",
+ "required": false,
+ "type": "list"
+ },
+ {
+ "description": "set to true if the offering is to be enabled during creation. Default is false",
+ "length": 255,
+ "name": "enable",
+ "required": false,
+ "since": "4.16",
+ "type": "boolean"
+ },
+ {
+ "description": "the display text of the vpc offering",
+ "length": 255,
+ "name": "displaytext",
"required": true,
"type": "string"
},
{
- "description": "the ID of the service offering for the VPC router appliance",
+ "description": "the name of the vpc offering",
"length": 255,
- "name": "serviceofferingid",
- "related": "createServiceOffering,updateServiceOffering,listServiceOfferings",
- "required": false,
- "type": "uuid"
+ "name": "name",
+ "required": true,
+ "type": "string"
},
{
- "description": "the ID of the containing domain(s), null for public offerings",
+ "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network",
"length": 255,
- "name": "domainid",
- "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain",
+ "name": "serviceproviderlist",
"required": false,
- "type": "list"
+ "type": "map"
}
],
"related": "updateVPCOffering,listVPCOfferings",
"response": [
{
+ "description": " indicated if the offering can support region level vpc",
+ "name": "supportsregionLevelvpc",
+ "type": "boolean"
+ },
+ {},
+ {
+ "description": "the UUID of the latest async job acting on this object",
+ "name": "jobid",
+ "type": "string"
+ },
+ {
+ "description": "the date this vpc offering was created",
+ "name": "created",
+ "type": "date"
+ },
+ {},
+ {
+ "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.",
+ "name": "zone",
+ "type": "string"
+ },
+ {
+ "description": "true if vpc offering is default, false otherwise",
+ "name": "isdefault",
+ "type": "boolean"
+ },
+ {
"description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.",
"name": "zoneid",
"type": "string"
},
- {},
{
- "description": "the name of the vpc offering",
- "name": "name",
+ "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.",
+ "name": "domain",
+ "type": "string"
+ },
+ {
+ "description": "an alternate display text of the vpc offering.",
+ "name": "displaytext",
+ "type": "string"
+ },
+ {
+ "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.",
+ "name": "domainid",
"type": "string"
},
{
@@ -85,35 +181,57 @@
"name": "service",
"response": [
{
- "description": "the service provider name",
- "name": "provider",
+ "description": "the service name",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "description": "the list of capabilities",
+ "name": "capability",
"response": [
{
- "description": "services for this provider",
- "name": "servicelist",
- "type": "list"
+ "description": "the capability value",
+ "name": "value",
+ "type": "string"
},
{
- "description": "the destination physical network",
- "name": "destinationphysicalnetworkid",
- "type": "string"
+ "description": "can this service capability value can be choosable while creatine network offerings",
+ "name": "canchooseservicecapability",
+ "type": "boolean"
},
{
- "description": "state of the network provider",
- "name": "state",
+ "description": "the capability name",
+ "name": "name",
"type": "string"
- },
+ }
+ ],
+ "type": "list"
+ },
+ {
+ "description": "the service provider name",
+ "name": "provider",
+ "response": [
{
"description": "the physical network this belongs to",
"name": "physicalnetworkid",
"type": "string"
},
{
+ "description": "the destination physical network",
+ "name": "destinationphysicalnetworkid",
+ "type": "string"
+ },
+ {
"description": "the provider name",
"name": "name",
"type": "string"
},
{
+ "description": "state of the network provider",
+ "name": "state",
+ "type": "string"
+ },
+ {
"description": "true if individual services can be enabled/disabled",
"name": "canenableindividualservice",
"type": "boolean"
@@ -122,33 +240,11 @@
"description": "uuid of the network provider",
"name": "id",
"type": "string"
- }
- ],
- "type": "list"
- },
- {
- "description": "the service name",
- "name": "name",
- "type": "string"
- },
- {
- "description": "the list of capabilities",
- "name": "capability",
- "response": [
- {
- "description": "the capability name",
- "name": "name",
- "type": "string"
- },
- {
- "description": "the capability value",
- "name": "value",
- "type": "string"
},
{
- "description": "can this service capability value can be choosable while creatine network offerings",
- "name": "canchooseservicecapability",
- "type": "boolean"
+ "description": "services for this provider",
+ "name": "servicelist",
+ "type": "list"
}
],
"type": "list"
@@ -157,38 +253,8 @@
"type": "list"
},
{
- "description": " indicated if the offering can support region level vpc",
- "name": "supportsregionLevelvpc",
- "type": "boolean"
- },
- {
- "description": "true if vpc offering is default, false otherwise",
- "name": "isdefault",
- "type": "boolean"
- },
- {
- "description": "the id of the vpc offering",
- "name": "id",
- "type": "string"
- },
- {
- "description": "the UUID of the latest async job acting on this object",
- "name": "jobid",
- "type": "string"
- },
- {
- "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.",
- "name": "zone",
- "type": "string"
- },
- {
- "description": "the date this vpc offering was created",
- "name": "created",
- "type": "date"
- },
- {
- "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.",
- "name": "domainid",
+ "description": "the name of the vpc offering",
+ "name": "name",
"type": "string"
},
{
@@ -197,22 +263,16 @@
"type": "integer"
},
{
- "description": "an alternate display text of the vpc offering.",
- "name": "displaytext",
- "type": "string"
- },
- {
- "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.",
- "name": "domain",
- "type": "string"
- },
- {},
- {
"description": " indicates if the vpc offering supports distributed router for one-hop forwarding",
"name": "distributedvpcrouter",
"type": "boolean"
},
{
+ "description": "the id of the vpc offering",
+ "name": "id",
+ "type": "string"
+ },
+ {
"description": "state of the vpc offering. Can be Disabled/Enabled",
"name": "state",
"type": "string"
@@ -225,9 +285,9 @@
"name": "createPod",
"params": [
{
- "description": "the ending IP address for the Pod",
+ "description": "Allocation state of this Pod for allocation of new resources",
"length": 255,
- "name": "endip",
+ "name": "allocationstate",
"required": false,
"type": "string"
},
@@ -239,17 +299,17 @@
"type": "string"
},
{
- "description": "Allocation state of this Pod for allocation of new resources",
+ "description": "the gateway for the Pod",
"length": 255,
- "name": "allocationstate",
- "required": false,
+ "name": "gateway",
+ "required": true,
"type": "string"
},
{
- "description": "the netmask for the Pod",
+ "description": "the ending IP address for the Pod",
"length": 255,
- "name": "netmask",
- "required": true,
+ "name": "endip",
+ "required": false,
"type": "string"
},
{
@@ -261,16 +321,16 @@
"type": "uuid"
},
{
- "description": "the name of the Pod",
+ "description": "the netmask for the Pod",
"length": 255,
- "name": "name",
+ "name": "netmask",
"required": true,
"type": "string"
},
{
- "description": "the gateway for the Pod",
+ "description": "the name of the Pod",
"length": 255,
- "name": "gateway",
+ "name": "name",
"required": true,
"type": "string"
}
@@ -278,33 +338,94 @@
"related": "listPods,updatePod,createManagementNetworkIpRange",
"response": [
{
- "description": "the gateway of the Pod",
- "name": "gateway",
+ "description": "the IP ranges for the Pod",
+ "name": "ipranges",
+ "response": [
+ {
+ "description": "indicates Vlan ID for the range",
+ "name": "vlanid",
+ "type": "string"
+ },
+ {
+ "description": "the ending IP for the range",
+ "name": "endip",
+ "type": "string"
+ },
+ {
+ "description": "indicates if range is dedicated for CPVM and SSVM",
+ "name": "forsystemvms",
+ "type": "string"
+ },
+ {
+ "description": "the starting IP for the range",
+ "name": "startip",
+ "type": "string"
+ }
+ ],
+ "type": "list"
+ },
+ {
+ "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.",
+ "name": "endip",
+ "type": "list"
+ },
+ {
+ "description": "the UUID of the latest async job acting on this object",
+ "name": "jobid",
+ "type": "string"
+ },
+ {
+ "description": "the Zone ID of the Pod",
+ "name": "zoneid",
+ "type": "string"
+ },
+ {
+ "description": "the starting IP for the Pod. This parameter is deprecated, please use 'startip' from ipranges parameter.",
+ "name": "startip",
+ "type": "list"
+ },
+ {
+ "description": "the name of the Pod",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "description": "the ID of the Pod",
+ "name": "id",
"type": "string"
},
- {},
{
"description": "the capacity of the Pod",
"name": "capacity",
"response": [
{
+ "description": "the capacity currently in use",
+ "name": "capacityused",
+ "type": "long"
+ },
+ {
+ "description": "the percentage of capacity currently in use",
+ "name": "percentused",
+ "type": "string"
+ },
+ {
"description": "the Zone ID",
"name": "zoneid",
"type": "string"
},
{
- "description": "the Zone name",
- "name": "zonename",
- "type": "string"
+ "description": "the total capacity available",
+ "name": "capacitytotal",
+ "type": "long"
},
{
- "description": "the capacity name",
- "name": "name",
+ "description": "the Zone name",
+ "name": "zonename",
"type": "string"
},
{
- "description": "the Pod name",
- "name": "podname",
+ "description": "the Cluster name",
+ "name": "clustername",
"type": "string"
},
{
@@ -313,33 +434,23 @@
"type": "long"
},
{
- "description": "the total capacity available",
- "name": "capacitytotal",
- "type": "long"
- },
- {
- "description": "the percentage of capacity currently in use",
- "name": "percentused",
- "type": "string"
- },
- {
"description": "the capacity type",
"name": "type",
"type": "short"
},
{
- "description": "the Cluster ID",
- "name": "clusterid",
+ "description": "the capacity name",
+ "name": "name",
"type": "string"
},
{
- "description": "the capacity currently in use",
- "name": "capacityused",
- "type": "long"
+ "description": "the Pod name",
+ "name": "podname",
+ "type": "string"
},
{
- "description": "the Cluster name",
- "name": "clustername",
+ "description": "the Cluster ID",
+ "name": "clusterid",
"type": "string"
},
{
@@ -350,66 +461,47 @@
],
"type": "list"
},
- {},
- {
- "description": "the ending IP for the Pod",
- "name": "endip",
- "type": "list"
- },
- {
- "description": "the allocation state of the Pod",
- "name": "allocationstate",
- "type": "string"
- },
{
"description": "the netmask of the Pod",
"name": "netmask",
"type": "string"
},
+ {},
{
- "description": "the Zone name of the Pod",
- "name": "zonename",
- "type": "string"
- },
- {
- "description": "indicates Vlan ID for the range",
+ "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.",
"name": "vlanid",
"type": "list"
},
{
- "description": "the UUID of the latest async job acting on this object",
- "name": "jobid",
+ "description": "the gateway of the Pod",
+ "name": "gateway",
"type": "string"
},
{
- "description": "the Zone ID of the Pod",
- "name": "zoneid",
+ "description": "the Zone name of the Pod",
+ "name": "zonename",
"type": "string"
},
{
- "description": "indicates if range is dedicated for CPVM and SSVM",
+ "description": "indicates if range is dedicated for CPVM and SSVM. This parameter is deprecated, please use 'forsystemvms' from ipranges parameter.",
"name": "forsystemvms",
"type": "list"
},
{
- "description": "the name of the Pod",
- "name": "name",
- "type": "string"
- },
- {
- "description": "the starting IP for the Pod",
- "name": "startip",
- "type": "list"
- },
- {
- "description": "the ID of the Pod",
- "name": "id",
- "type": "string"
+ "description": "true if the entity/resource has annotations",
+ "name": "hasannotations",
+ "type": "boolean"
},
+ {},
{
"description": "the current status of the latest async job acting on this object",
"name": "jobstatus",
"type": "integer"
+ },
+ {
+ "description": "the allocation state of the Pod",
+ "name": "allocationstate",
+ "type": "string"
}
]
},
@@ -419,6 +511,20 @@
"name": "ldapCreateAccount",
"params": [
{
+ "description": "Account UUID, required for adding account from external provisioning system",
+ "length": 255,
+ "name": "accountid",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "description": "Unique username.",
+ "length": 255,
+ "name": "username",
+ "required": true,
+ "type": "string"
+ },
+ {
"description": "details for account used to store specific parameters",
"length": 255,
"name": "accountdetails",
@@ -440,34 +546,19 @@
"type": "string"
},
{
- "description": "Network domain for the account's networks",
- "length": 255,
- "name": "networkdomain",
- "required": false,
- "type": "string"
- },
- {
- "description": "Creates the account under the specified role.",
+ "description": "Creates the user under the specified domain.",
"length": 255,
- "name": "roleid",
- "related": "createRole,importRole,listRoles,updateRole",
+ "name": "domainid",
+ "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain",
"required": false,
"type": "uuid"
},
{
- "description": "Type of the account. Specify 0 for user, 1 for root admin, and 2 for domain admin",
- "length": 255,
- "name": "accounttype",
- "required": false,
- "type": "short"
- },
- {
- "description": "Creates the user under the specified domain.",
+ "description": "Network domain for the account's networks",
"length": 255,
- "name": "domainid",
- "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain",
+ "name": "networkdomain",
"required": false,
- "type": "uuid"
+ "type": "string"
},
{
"description": "User UUID, required for adding account from external provisioning system",
@@ -477,81 +568,152 @@
"type": "string"
},
{
- "description": "Account UUID, required for adding account from external provisioning system",
+ "description": "Type of the account. Specify 0 for user, 1 for root admin, and 2 for domain admin",
"length": 255,
- "name": "accountid",
+ "name": "accounttype",
"required": false,
- "type": "string"
+ "type": "short"
},
{
- "description": "Unique username.",
+ "description": "Creates the account under the specified role.",
"length": 255,
- "name": "username",
- "required": true,
- "type": "string"
+ "name": "roleid",
+ "related": "createRole,importRole,listRoles,updateRole",
+ "required": false,
+ "type": "uuid"
}
],
"related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts",
"response": [
{
- "description": "the total number of network traffic bytes received",
- "name": "receivedbytes",
+ "description": "the total number of projects being administrated by this account",
+ "name": "projecttotal",
"type": "long"
},
{
- "description": "the total volume being used by this account",
- "name": "volumetotal",
+ "description": "the total number of virtual machines deployed by this account",
+ "name": "vmtotal",
"type": "long"
},
{
- "description": "the total number of projects the account can own",
- "name": "projectlimit",
+ "description": "the total primary storage space (in GiB) available to be used for this account",
+ "name": "primarystorageavailable",
"type": "string"
},
{
- "description": "name of the Domain the account belongs to",
- "name": "domain",
- "type": "string"
+ "description": "true if account is default, false otherwise",
+ "name": "isdefault",
+ "type": "boolean"
},
{
- "description": "the total number of virtual machines running for this account",
- "name": "vmrunning",
+ "description": "the date when this account was created",
+ "name": "created",
+ "type": "date"
+ },
+ {
+ "description": "the current status of the latest async job acting on this object",
+ "name": "jobstatus",
"type": "integer"
},
{
- "description": "the total number of virtual machines deployed by this account",
- "name": "vmtotal",
- "type": "long"
+ "description": "Base64 string representation of the resource icon",
+ "name": "icon",
+ "type": "resourceiconresponse"
},
{
- "description": "the network domain",
- "name": "networkdomain",
+ "description": "the total number of virtual machines running for this account",
+ "name": "vmrunning",
+ "type": "integer"
+ },
+ {
+ "description": "the total number of cpu cores available to be created for this account",
+ "name": "cpuavailable",
"type": "string"
},
- {},
{
- "description": "the total primary storage space (in GiB) available to be used for this account",
- "name": "primarystorageavailable",
+ "description": "the total secondary storage space (in GiB) available to be used for this account",
+ "name": "secondarystorageavailable",
"type": "string"
},
{
- "description": "the total number of public ip addresses allocated for this account",
- "name": "iptotal",
+ "description": "the network domain",
+ "name": "networkdomain",
+ "type": "string"
+ },
+ {
+ "description": "name of the Domain the account belongs to",
+ "name": "domain",
+ "type": "string"
+ },
+ {},
+ {
+ "description": "the total number of network traffic bytes sent",
+ "name": "sentbytes",
+ "type": "long"
+ },
+ {
+ "description": "the total volume being used by this account",
+ "name": "volumetotal",
"type": "long"
},
{
+ "description": "the default zone of the account",
+ "name": "defaultzoneid",
+ "type": "string"
+ },
+ {
+ "description": "the id of the account",
+ "name": "id",
+ "type": "string"
+ },
+ {
+ "description": "the total secondary storage space (in GiB) owned by account",
+ "name": "secondarystoragetotal",
+ "type": "float"
+ },
+ {
+ "description": "the total secondary storage space (in GiB) the account can own",
+ "name": "secondarystoragelimit",
+ "type": "string"
+ },
+ {
+ "description": "the total number of vpcs the account can own",
+ "name": "vpclimit",
+ "type": "string"
+ },
+ {
"description": "the list of acl groups that account belongs to",
"name": "groups",
"type": "list"
},
{
- "description": "the total number of templates which can be created by this account",
- "name": "templatelimit",
+ "description": "the total number of snapshots which can be stored by this account",
+ "name": "snapshotlimit",
"type": "string"
},
{
- "description": "the total number of cpu cores available to be created for this account",
- "name": "cpuavailable",
+ "description": "the UUID of the latest async job acting on this object",
+ "name": "jobid",
+ "type": "string"
+ },
+ {
+ "description": "the total number of vpcs available to be created for this account",
+ "name": "vpcavailable",
+ "type": "string"
+ },
+ {
+ "description": "id of the Domain the account belongs to",
+ "name": "domainid",
+ "type": "string"
+ },
+ {
+ "description": "the total number of cpu cores the account can own",
+ "name": "cpulimit",
+ "type": "string"
+ },
+ {
+ "description": "the name of the role",
+ "name": "rolename",
"type": "string"
},
{
@@ -560,8 +722,43 @@
"type": "string"
},
{
- "description": "the id of the account",
- "name": "id",
+ "description": "true if the account requires cleanup",
+ "name": "iscleanuprequired",
+ "type": "boolean"
+ },
+ {
+ "description": "the total number of projects the account can own",
+ "name": "projectlimit",
+ "type": "string"
+ },
+ {
+ "description": "the total number of snapshots available for this account",
+ "name": "snapshotavailable",
+ "type": "string"
+ },
+ {
+ "description": "path of the Domain the account belongs to",
+ "name": "domainpath",
+ "type": "string"
+ },
+ {
+ "description": "the state of the account",
+ "name": "state",
+ "type": "string"
+ },
+ {
+ "description": "the total number of network traffic bytes received",
+ "name": "receivedbytes",
+ "type": "long"
+ },
+ {
+ "description": "the total volume which can be used by this account",
+ "name": "volumelimit",
+ "type": "string"
+ },
+ {
+ "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
+ "name": "roletype",
"type": "string"
},
{
@@ -575,50 +772,50 @@
"type": "string"
},
{
- "description": "path of the Domain the account belongs to",
- "name": "domainpath",
- "type": "string"
+ "description": "the total number of networks owned by account",
+ "name": "networktotal",
+ "type": "long"
},
{
- "description": "the total number of public ip addresses available for this account to acquire",
- "name": "ipavailable",
+ "description": "the total memory (in MB) the account can own",
+ "name": "memorylimit",
"type": "string"
},
{
- "description": "the total number of virtual machines stopped for this account",
- "name": "vmstopped",
- "type": "integer"
+ "description": "the total number of cpu cores owned by account",
+ "name": "cputotal",
+ "type": "long"
},
{
- "description": "the total volume available for this account",
- "name": "volumeavailable",
+ "description": "the total number of public ip addresses allocated for this account",
+ "name": "iptotal",
+ "type": "long"
+ },
+ {
+ "description": "the total number of templates available to be created by this account",
+ "name": "templateavailable",
"type": "string"
},
{
+ "description": "account type (admin, domain-admin, user)",
+ "name": "accounttype",
+ "type": "short"
+ },
+ {
"description": "the list of users associated with account",
"name": "user",
"response": [
{
- "description": "the date and time the user account was created",
- "name": "created",
- "type": "date"
- },
- {
- "description": "the source type of the user in lowercase, such as native, ldap, saml2",
- "name": "usersource",
+ "description": "the ID of the role",
+ "name": "roleid",
"type": "string"
},
{
- "description": "the secret key of the user",
- "name": "secretkey",
+ "description": "the user firstname",
+ "name": "firstname",
"type": "string"
},
{
- "description": "the account type of the user",
- "name": "accounttype",
- "type": "short"
- },
- {
"description": "the user state",
"name": "state",
"type": "string"
@@ -629,13 +826,23 @@
"type": "string"
},
{
- "description": "the user name",
- "name": "username",
+ "description": "Base64 string representation of the resource icon",
+ "name": "icon",
+ "type": "resourceiconresponse"
+ },
+ {
+ "description": "the boolean value representing if the updating target is in caller's child domain",
+ "name": "iscallerchilddomain",
+ "type": "boolean"
+ },
+ {
+ "description": "the user lastname",
+ "name": "lastname",
"type": "string"
},
{
- "description": "the api key of the user",
- "name": "apikey",
+ "description": "the secret key of the user",
+ "name": "secretkey",
"type": "string"
},
{
@@ -644,18 +851,28 @@
"type": "string"
},
{
+ "description": "the account type of the user",
+ "name": "accounttype",
+ "type": "short"
+ },
+ {
"description": "the account name of the user",
"name": "account",
"type": "string"
},
{
+ "description": "the date and time the user account was created",
+ "name": "created",
+ "type": "date"
+ },
+ {
"description": "the type of the role",
"name": "roletype",
"type": "string"
},
{
- "description": "the timezone user was created in",
- "name": "timezone",
+ "description": "the name of the role",
+ "name": "rolename",
"type": "string"
},
{
@@ -664,18 +881,13 @@
"type": "string"
},
{
- "description": "the domain ID of the user",
- "name": "domainid",
- "type": "string"
- },
- {
- "description": "the user lastname",
- "name": "lastname",
+ "description": "the timezone user was created in",
+ "name": "timezone",
"type": "string"
},
{
- "description": "the name of the role",
- "name": "rolename",
+ "description": "the account ID of the user",
+ "name": "accountid",
"type": "string"
},
{
@@ -684,97 +896,53 @@
"type": "boolean"
},
{
- "description": "the ID of the role",
- "name": "roleid",
+ "description": "the user name",
+ "name": "username",
"type": "string"
},
{
- "description": "the user firstname",
- "name": "firstname",
+ "description": "the source type of the user in lowercase, such as native, ldap, saml2",
+ "name": "usersource",
"type": "string"
},
{
- "description": "the account ID of the user",
- "name": "accountid",
+ "description": "the domain ID of the user",
+ "name": "domainid",
"type": "string"
},
{
- "description": "the boolean value representing if the updating target is in caller's child domain",
- "name": "iscallerchilddomain",
- "type": "boolean"
+ "description": "the api key of the user",
+ "name": "apikey",
+ "type": "string"
}
],
"type": "list"
},
+ {},
{
- "description": "the total number of networks the account can own",
- "name": "networklimit",
- "type": "string"
- },
- {
- "description": "the total number of cpu cores the account can own",
- "name": "cpulimit",
- "type": "string"
- },
- {
- "description": "the UUID of the latest async job acting on this object",
- "name": "jobid",
- "type": "string"
- },
- {
- "description": "the total number of projects being administrated by this account",
- "name": "projecttotal",
+ "description": "the total number of snapshots stored by this account",
+ "name": "snapshottotal",
"type": "long"
},
{
- "description": "the total number of snapshots available for this account",
- "name": "snapshotavailable",
- "type": "string"
- },
- {
- "description": "the total number of vpcs the account can own",
- "name": "vpclimit",
- "type": "string"
- },
- {
- "description": "the total number of public ip addresses this account can acquire",
- "name": "iplimit",
- "type": "string"
- },
- {
- "description": "the total secondary storage space (in GiB) the account can own",
- "name": "secondarystoragelimit",
- "type": "string"
- },
- {
- "description": "the name of the role",
- "name": "rolename",
- "type": "string"
- },
- {
- "description": "id of the Domain the account belongs to",
- "name": "domainid",
+ "description": "the total number of virtual machines available for this account to acquire",
+ "name": "vmavailable",
"type": "string"
},
{
- "description": "the total volume which can be used by this account",
- "name": "volumelimit",
+ "description": "the total volume available for this account",
+ "name": "volumeavailable",
"type": "string"
},
{
- "description": "the current status of the latest async job acting on this object",
- "name": "jobstatus",
- "type": "integer"
- },
- {
- "description": "the total number of networks owned by account",
- "name": "networktotal",
+ "description": "the total number of vpcs owned by account",
+ "name": "vpctotal",
"type": "long"
},
{
- "description": "the total memory (in MB) the account can own",
- "name": "memorylimit",
- "type": "string"
+ "description": "the total memory (in MB) owned by account",
+ "name": "memorytotal",
+ "type": "long"
},
{
"description": "the ID of the role",
@@ -782,37 +950,6 @@
"type": "string"
},
{
- "description": "true if the account requires cleanup",
- "name": "iscleanuprequired",
- "type": "boolean"
- },
- {
- "description": "account type (admin, domain-admin, user)",
- "name": "accounttype",
- "type": "short"
- },
- {},
- {
- "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)",
- "name": "roletype",
- "type": "string"
- },
- {
- "description": "the total secondary storage space (in GiB) owned by account",
- "name": "secondarystoragetotal",
- "type": "float"
- },
- {
- "description": "the total number of virtual machines that can be deployed by this account",
- "name": "vmlimit",
- "type": "string"
- },
- {
- "description": "the total number of vpcs available to be created for this account",
- "name": "vpcavailable",
- "type": "string"
- },
- {
"description": "the total memory (in MB) available to be created for this account",
"name": "memoryavailable",
"type": "string"
@@ -823,43 +960,8 @@
"type": "long"
},
{
- "description": "details for the account",
- "name": "accountdetails",
- "type": "map"
- },
- {
- "description": "the state of the account",
- "name": "state",
- "type": "string"
- },
- {
- "description": "the total number of templates available to be created by this account",
- "name": "templateavailable",
- "type": "string"
- },
- {
- "description": "the total number of vpcs owned by account",
- "name": "vpctotal",
- "type": "long"
- },
- {
- "description": "the total number of cpu cores owned by account",
- "name": "cputotal",
- "type": "long"
- },
- {
- "description": "the total number of network traffic bytes sent",
- "name": "sentbytes",
- "type": "long"
- },
- {
- "description": "the total secondary storage space (in GiB) available to be used for this account",
- "name": "secondarystorageavailable",
- "type": "string"
- },
- {
- "description": "the total number of snapshots which can be stored by this account",
- "name": "snapshotlimit",
+ "description": "the total number of virtual machines that can be deployed by this account",
+ "name": "vmlimit",
"type": "string"
},
{
@@ -868,19 +970,24 @@
"type": "string"
},
{
- "description": "the default zone of the account",
- "name": "defaultzoneid",
+ "description": "the total number of templates which can be created by this account",
+ "name": "templatelimit",
"type": "string"
},
{
- "description": "the total number of virtual machines available for this account to acquire",
- "name": "vmavailable",
+ "description": "the total number of virtual machines stopped for this account",
+ "name": "vmstopped",
+ "type": "integer"
+ },
+ {
+ "description": "the total number of networks the account can own",
+ "name": "networklimit",
"type": "string"
},
{
- "description": "the total memory (in MB) owned by account",
- "name": "memorytotal",
- "type": "long"
+ "description": "details for the account",
+ "name": "accountdetails",
+ "type": "map"
},
{
"description": "the name of the account",
@@ -888,14 +995,14 @@
"type": "string"
},
{
- "description": "true if account is default, false otherwise",
- "name": "isdefault",
- "type": "boolean"
+ "description": "the total number of public ip addresses available for this account to acquire",
+ "name": "ipavailable",
+ "type": "string"
},
{
- "description": "the total number of snapshots stored by this account",
- "name": "snapshottotal",
- "type": "long"
+ "description": "the total number of public ip addresses this account can acquire",
+ "name": "iplimit",
+ "type": "string"
}
],
"since": "4.2.0"
@@ -914,27 +1021,27 @@
}
],
"response": [
- {
- "description": "true if operation is executed successfully",
- "name": "success",
- "type": "boolean"
- },
+ {},
{},
{
- "description": "the UUID of the latest async job acting on this object",
- "name": "jobid",
- "type": "string"
+ "description": "the current status of the latest async job acting on this object",
+ "name": "jobstatus",
+ "type": "integer"
},
{
"description": "any text associated with the success or failure",
"name": "displaytext",
"type": "string"
},
- {},
{
- "description": "the current status of the latest async job acting on this object",
- "name": "jobstatus",
- "type": "integer"
+ "description": "true if operation is executed successfully",
+ "name": "success",
+ "type": "boolean"
+ },
+ {
+ "description": "the UUID of the latest async job acting on this object",
+ "name": "jobid",
+ "type": "string"
}
],
"since": "4.6.0"
@@ -953,12 +1060,12 @@
"type": "uuid"
},
{
- "description": "ID of the zone the template is being copied to.",
+ "description": "A list of IDs of the zones that the template needs to be copied to.Specify this list if the template needs to copied to multiple zones in one go. Do not specify destzoneid and destzoneids together, however one of them is required.",
"length": 255,
- "name": "destzoneid",
+ "name": "destzoneids",
"related": "createZone,updateZone,listZones,listZones",
"required": false,
- "type": "uuid"
+ "type": "list"
},
{
"description": "Template ID.",
@@ -969,24 +1076,29 @@
"type": "uuid"
},
{
- "description": "A list of IDs of the zones that the template needs to be copied to.Specify this list if the template needs to copied to multiple zones in one go. Do not specify destzoneid and destzoneids together, however one of them is required.",
+ "description": "ID of the zone the template is being copied to.",
"length": 255,
- "name": "destzoneids",
+ "name": "destzoneid",
"related": "createZone,updateZone,listZones,listZones",
"required": false,
- "type": "list"
+ "type": "uuid"
}
],
"related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos",
"response": [
{
- "description": "the name of the OS type for this template.",
- "name": "ostypename",
- "type": "string"
+ "description": "Lists the download progress of a template across all secondary storages",
+ "name": "downloaddetails",
+ "type": "list"
},
{
- "description": "the account name to which the template belongs",
- "name": "account",
+ "description": "additional key/value details tied with template",
+ "name": "details",
+ "type": "map"
+ },
+ {
+ "description": "the UUID of the latest async job acting on this object",
+ "name": "jobid",
"type": "string"
},
{
@@ -995,67 +1107,132 @@
"type": "string"
},
{
- "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
- "name": "directdownload",
+ "description": "true if the template is ready to be deployed from, false otherwise.",
+ "name": "isready",
"type": "boolean"
},
{
- "description": "the hypervisor on which the template runs",
- "name": "hypervisor",
+ "description": "the format of the template.",
+ "name": "format",
+ "type": "imageformat"
+ },
+ {
+ "description": "the status of the template",
+ "name": "status",
"type": "string"
},
{
- "description": "the tag of this template",
- "name": "templatetag",
+ "description": "the processor bit size",
+ "name": "bits",
+ "type": "int"
+ },
+ {
+ "description": "checksum of the template",
+ "name": "checksum",
"type": "string"
},
{
- "description": "the project name of the template",
- "name": "project",
+ "description": "true if this template is a public template, false otherwise",
+ "name": "ispublic",
+ "type": "boolean"
+ },
+ {
+ "description": "the template ID of the parent template if present",
+ "name": "sourcetemplateid",
"type": "string"
},
{
- "description": "additional key/value details tied with template",
- "name": "details",
- "type": "map"
+ "description": "the date this template was created",
+ "name": "created",
+ "type": "date"
},
{
- "description": "true if the template is extractable, false otherwise",
- "name": "isextractable",
- "type": "boolean"
+ "description": "the current status of the latest async job acting on this object",
+ "name": "jobstatus",
+ "type": "integer"
},
{
- "description": "the template ID",
- "name": "id",
+ "description": "the ID of the domain to which the template belongs",
+ "name": "domainid",
"type": "string"
},
{
- "description": "the ID of the zone for this template",
- "name": "zoneid",
+ "description": "the name of the secondary storage host for the template",
+ "name": "hostname",
"type": "string"
},
{
- "description": "the list of resource tags associated",
- "name": "tags",
- "response": [
- {
- "description": "the project name where tag belongs to",
- "name": "project",
- "type": "string"
- },
- {
- "description": "tag key name",
- "name": "key",
+ "description": "the URL which the template/iso is registered from",
+ "name": "url",
+ "type": "string"
+ },
+ {
+ "description": "the ID of the secondary storage host for the template",
+ "name": "hostid",
+ "type": "string"
+ },
+ {
+ "description": "true if the reset password feature is enabled, false otherwise",
+ "name": "passwordenabled",
+ "type": "boolean"
+ },
+ {
+ "description": "the template ID",
+ "name": "id",
+ "type": "string"
+ },
+ {
+ "description": "the size of the template",
+ "name": "size",
+ "type": "long"
+ },
+ {
+ "description": "the account id to which the template belongs",
+ "name": "accountid",
+ "type": "string"
+ },
+ {
+ "description": "the ID of the OS type for this template.",
+ "name": "ostypeid",
+ "type": "string"
+ },
+ {
+ "description": "the project id of the template",
+ "name": "projectid",
+ "type": "string"
+ },
+ {
+ "description": "true if the template is managed across all Zones, false otherwise",
+ "name": "crossZones",
+ "type": "boolean"
+ },
+ {
+ "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.",
+ "name": "deployasis",
+ "type": "boolean"
+ },
+ {
+ "description": "if Datadisk template, then id of the root disk template this template belongs to",
+ "name": "parenttemplateid",
+ "type": "string"
+ },
+ {
+ "description": "the list of resource tags associated",
+ "name": "tags",
+ "response": [
+ {
+ "description": "the ID of the domain associated with the tag",
+ "name": "domainid",
"type": "string"
},
{
- "description": "resource type",
- "name": "resourcetype",
+ "description": "tag value",
+ "name": "value",
"type": "string"
},
{
- "description": "the domain associated with the tag",
- "name": "domain",
+ "description": "resource type",
+ "name": "resourcetype",
"type": "string"
},
{
@@ -1064,92 +1241,78 @@
"type": "string"
},
{
- "description": "the project id the tag belongs to",
- "name": "projectid",
+ "description": "the domain associated with the tag",
+ "name": "domain",
"type": "string"
},
{
- "description": "the account associated with the tag",
- "name": "account",
+ "description": "tag key name",
+ "name": "key",
"type": "string"
},
{
- "description": "the ID of the domain associated with the tag",
- "name": "domainid",
+ "description": "id of the resource",
+ "name": "resourceid",
"type": "string"
},
{
- "description": "tag value",
- "name": "value",
+ "description": "the project id the tag belongs to",
+ "name": "projectid",
"type": "string"
},
{
- "description": "id of the resource",
- "name": "resourceid",
+ "description": "the account associated with the tag",
+ "name": "account",
+ "type": "string"
+ },
+ {
+ "description": "the project name where tag belongs to",
+ "name": "project",
"type": "string"
}
],
"type": "set"
},
{
- "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
- "name": "isdynamicallyscalable",
- "type": "boolean"
- },
- {
- "description": "checksum of the template",
- "name": "checksum",
- "type": "string"
- },
- {
- "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.",
- "name": "deployasis",
- "type": "boolean"
- },
- {
"description": "the name of the zone for this template",
"name": "zonename",
"type": "string"
},
{
- "description": "the current status of the latest async job acting on this object",
- "name": "jobstatus",
- "type": "integer"
- },
- {
- "description": "the physical size of the template",
- "name": "physicalsize",
- "type": "long"
+ "description": "VMware only: additional key/value details tied with deploy-as-is template",
+ "name": "deployasisdetails",
+ "type": "map"
},
{
- "description": "the date this template was created",
- "name": "created",
- "type": "date"
+ "description": "true if this template is a featured template, false otherwise",
+ "name": "isfeatured",
+ "type": "boolean"
},
+ {},
{
- "description": "the format of the template.",
- "name": "format",
- "type": "imageformat"
+ "description": "the name of the OS type for this template.",
+ "name": "ostypename",
+ "type": "string"
},
{
- "description": "true if this template is a featured template, false otherwise",
- "name": "isfeatured",
+ "description": "true if the template is extractable, false otherwise",
+ "name": "isextractable",
"type": "boolean"
},
{
- "description": "the date this template was removed",
- "name": "removed",
- "type": "date"
+ "description": "the account name to which the template belongs",
+ "name": "account",
+ "type": "string"
},
{
- "description": "the name of the domain to which the template belongs",
- "name": "domain",
+ "description": "the project name of the template",
+ "name": "project",
"type": "string"
},
{
- "description": "the account id to which the template belongs",
- "name": "accountid",
- "type": "string"
+ "description": "true if template is sshkey enabled, false otherwise",
+ "name": "sshkeyenabled",
+ "type": "boolean"
},
{
"description": "if root disk template, then ids of the datas disk templates this template owns",
@@ -1157,121 +1320,114 @@
"type": "set"
},
{
- "description": "Lists the download progress of a template across all secondary storages",
- "name": "downloaddetails",
- "type": "list"
- },
- {
- "description": "the ID of the domain to which the template belongs",
- "name": "domainid",
- "type": "string"
- },
- {
- "description": "the name of the secondary storage host for the template",
- "name": "hostname",
+ "description": "the template display text",
+ "name": "displaytext",
"type": "string"
},
+ {},
{
- "description": "true if template requires HVM enabled, false otherwise",
- "name": "requireshvm",
+ "description": "true if the entity/resource has annotations",
+ "name": "hasannotations",
"type": "boolean"
},
{
- "description": "the template display text",
- "name": "displaytext",
- "type": "string"
+ "description": "the physical size of the template",
+ "name": "physicalsize",
+ "type": "long"
},
{
- "description": "if Datadisk template, then id of the root disk template this template belongs to",
- "name": "parenttemplateid",
+ "description": "the name of the domain to which the template belongs",
+ "name": "domain",
"type": "string"
},
- {},
{
- "description": "true if the template is managed across all Zones, false otherwise",
- "name": "crossZones",
- "type": "boolean"
+ "description": "Base64 string representation of the resource icon",
+ "name": "icon",
+ "type": "resourceiconresponse"
},
{
- "description": "the UUID of the latest async job acting on this object",
- "name": "jobid",
+ "description": "the template name",
+ "name": "name",
"type": "string"
},
{
- "description": "the URL which the template/iso is registered from",
- "name": "url",
+ "description": "the tag of this template",
+ "name": "templatetag",
"type": "string"
},
{
- "description": "the size of the template",
- "name": "size",
- "type": "long"
- },
- {
- "description": "the ID of the secondary storage host for the template",
- "name": "hostid",
+ "description": "the ID of the zone for this template",
+ "name": "zoneid",
"type": "string"
},
{
- "description": "true if this template is a public template, false otherwise",
- "name": "ispublic",
+ "description": "true if template requires HVM enabled, false otherwise",
+ "name": "requireshvm",
"type": "boolean"
},
- {},
{
- "description": "true if template is sshkey enabled, false otherwise",
- "name": "sshkeyenabled",
+ "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory",
+ "name": "isdynamicallyscalable",
"type": "boolean"
},
{
- "description": "the processor bit size",
- "name": "bits",
- "type": "int"
- },
- {
- "description": "true if the template is ready to be deployed from, false otherwise.",
- "name": "isready",
+ "description": "true if the ISO is bootable, false otherwise",
+ "name": "bootable",
"type": "boolean"
},
{
- "description": "true if the reset password feature is enabled, false otherwise",
- "name": "passwordenabled",
- "type": "boolean"
+ "description": "the date this template was removed",
+ "name": "removed",
+ "type": "date"
},
{
- "description": "VMware only: additional key/value details tied with deploy-as-is template",
- "name": "deployasisdetails",
- "type": "map"
+ "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage",
+ "name": "directdownload",
+ "type": "boolean"
},
{
- "description": "the ID of the OS type for this template.",
- "name": "ostypeid",
+ "description": "the hypervisor on which the template runs",
+ "name": "hypervisor",
"type": "string"
- },
+ }
+ ]
+ },
+ {
+ "description": "Deletes a autoscale vm profile.",
+ "isasync": true,
+ "name": "deleteAutoScaleVmProfile",
+ "params": [
{
- "description": "the project id of the template",
- "name": "projectid",
- "type": "string"
- },
+ "description": "the ID of the autoscale profile",
+ "length": 255,
+ "name": "id",
+ "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile",
+ "required": true,
+ "type": "uuid"
+ }
+ ],
+ "response": [
{
- "description": "true if the ISO is bootable, false otherwise",
- "name": "bootable",
- "type": "boolean"
+ "description": "the current status of the latest async job acting on this object",
+ "name": "jobstatus",
+ "type": "integer"
},
+ {},
+ {},
{
- "description": "the template ID of the parent template if present",
- "name": "sourcetemplateid",
+ "description": "any text associated with the success or failure",
+ "name": "displaytext",
"type": "string"
},
{
- "description": "the template name",
- "name": "name",
+ "description": "the UUID of the latest async job acting on this object",
+ "name": "jobid",
"type": "string"
},
{
- "description": "the status of the template",
- "name": "status",
- "type": "string"
+ "description": "true if operation is executed successfully",
+ "name": "success",
+ "type": "boolean"
}
]
},
@@ -1288,62 +1444,27 @@
"type": "string"
},
{
- "description": "The host/agent uuid to which the certificate has to be provisioned (issued and propagated)",
- "length": 255,
- "name": "hostid",
- "related": "addHost,cancelHostMaintenance,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost,listExternalLoadBalancers",
- "required": true,
- "type": "uuid"
- },
- {
"description": "Whether to attempt reconnection with host/agent after successful deployment of certificate. When option is not provided, configured global setting is used",
"length": 255,
"name": "reconnect",
"required": false,
"type": "boolean"
- }
- ],
- "response": [
- {
- "description": "the UUID of the latest async job acting on this object",
- "name": "jobid",
- "type": "string"
- },
- {},
- {},
- {
- "description": "true if operation is executed successfully",
- "name": "success",
- "type": "boolean"
- },
- {
- "description": "the current status of the latest async job acting on this object",
- "name": "jobstatus",
- "type": "integer"
},
{
- "description": "any text associated with the success or failure",
- "name": "displaytext",
- "type": "string"
- }
- ],
- "since": "4.11.0"
- },
- {
- "description": "Deletes a autoscale vm profile.",
- "isasync": true,
- "name": "deleteAutoScaleVmProfile",
- "params": [
- {
- "description": "the ID of the autoscale profile",
+ "description": "The host/agent uuid to which the certificate has to be provisioned (issued and propagated)",
"length": 255,
- "name": "id",
- "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile",
+ "name": "hostid",
+ "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost,listExternalLoadBalancers",
"required": true,
"type": "uuid"
}
],
"response": [
+ {
+ "description": "true if operation is executed successfully",
+ "name": "success",
+ "type": "boolean"
+ },
{},
{
"description": "the UUID of the latest async job acting on this object",
@@ -1351,22 +1472,18 @@
"type": "string"
},
{
- "description": "true if operation is executed successfully",
- "name": "success",
- "type": "boolean"
- },
- {
"description": "the current status of the latest async job acting on this object",
"name": "jobstatus",
"type": "integer"
},
- {},
{
"description": "any text associated with the success or failure",
"name": "displaytext",
"type": "string"
- }
- ]
+ },
+ {}
+ ],
+ "since": "4.11.0"
},
{
"description": "Adds an external firewall appliance",
@@ -1374,9 +1491,9 @@
"name": "addExternalFirewall",
"params": [
{
- "description": "URL of the external firewall appliance.",
+ "description": "Username of the external firewall appliance.",
"length": 255,
- "name": "url",
+ "name": "username",
"required": true,
"type": "string"
},
@@ -1396,9 +1513,9 @@
"type": "string"
},
{
- "description": "Username of the external firewall appliance.",
+ "description": "URL of the external firewall appliance.",
"length": 255,
- "name": "username",
+ "name": "url",
"required": true,
"type": "string"
}
@@ -1406,19 +1523,20 @@
"related": "listExternalFirewalls",
"response": [
{
- "description": "the username that's used to log in to the external firewall",
- "name": "username",
+ "description": "the timeout (in seconds) for requests to the external firewall",
+ "name": "timeout",
"type": "string"
},
+ {},
{
- "description": "the public security zone of the external firewall",
- "name": "publiczone",
+ "description": "the number of times to retry requests to the external firewall",
+ "name": "numretries",
"type": "string"
},
{
- "description": "the zone ID of the external firewall",
- "name": "zoneid",
- "type": "string"
+ "description": "the current status of the latest async job acting on this object",
+ "name": "jobstatus",
+ "type": "integer"
},
{
"description": "the UUID of the latest async job acting on this object",
@@ -1426,15 +1544,13 @@
"type": "string"
},
{
- "description": "the private interface of the external firewall",
- "name": "privateinterface",
+ "description": "the zone ID of the external firewall",
+ "name": "zoneid",
"type": "string"
},
- {},
- {},
{
- "description": "the ID of the external firewall",
- "name": "id",
+ "description": "the private security zone of the external firewall",
+ "name": "privatezone",
"type": "string"
},
{
@@ -1442,39 +1558,40 @@
"name": "ipaddress",
"type": "string"
},
+ {},
{
- "description": "the public interface of the external firewall",
- "name": "publicinterface",
+ "description": "the username that's used to log in to the external firewall",
+ "name": "username",
"type": "string"
},
{
- "description": "the timeout (in seconds) for requests to the external firewall",
- "name": "timeout",
+ "description": "the ID of the network device",
+ "name": "id",
"type": "string"
},
{
- "description": "the usage interface of the external firewall",
- "name": "usageinterface",
+ "description": "the public security zone of the external firewall",
+ "name": "publiczone",
"type": "string"
},
{
- "description": "the private security zone of the external firewall",
- "name": "privatezone",
+ "description": "the ID of the external firewall",
+ "name": "id",
"type": "string"
},
{
- "description": "the ID of the network device",
- "name": "id",
+ "description": "the usage interface of the external firewall",
+ "name": "usageinterface",
"type": "string"
},
{
- "description": "the current status of the latest async job acting on this object",
- "name": "jobstatus",
- "type": "integer"
+ "description": "the private interface of the external firewall",
+ "name": "privateinterface",
+ "type": "string"
},
{
- "description": "the number of times to retry requests to the external firewall",
- "name": "numretries",
+ "description": "the public interface of the external firewall",
+ "name": "publicinterface",
"type": "string"
}
]
@@ -1488,33 +1605,33 @@
"description": "Id of the external loadbalancer appliance.",
"length": 255,
"name": "id",
- "related": "addHost,cancelHostMaintenance,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost,listExternalLoadBalancers",
+ "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost,listExternalLoadBalancers",
"required": true,
"type": "uuid"
}
],
"response": [
{
- "description": "the current status of the latest async job acting on this object",
- "name": "jobstatus",
- "type": "integer"
- },
- {
"description": "the UUID of the latest async job acting on this object",
"name": "jobid",
"type": "string"
},
{},
- {},
{
- "description": "true if operation is executed successfully",
- "name": "success",
- "type": "boolean"
+ "description": "the current status of the latest async job acting on this object",
+ "name": "jobstatus",
+ "type": "integer"
},
+ {},
{
"description": "any text associated with the success or failure",
"name": "displaytext",
"type": "string"
+ },
+ {
+ "description": "true if operation is executed successfully",
+ "name": "success",
+ "type": "boolean"
}
]
},
@@ -1524,43 +1641,50 @@
"name": "listVirtualMachinesMetrics",
"params": [
{
- "description": "list objects by project",
+ "description": "comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all",
"length": 255,
- "name": "projectid",
- "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject",
+ "name": "details",
"required": false,
- "type": "uuid"
+ "type": "list"
},
{
- "description": "",
+ "description": "list vms by iso",
"length": 255,
- "name": "pagesize",
+ "name": "isoid",
"required": false,
- "type": "integer"
+ "type": "uuid"
},
{
- "description": "the group ID",
+ "description": "the target hypervisor for the template",
"length": 255,
- "name": "groupid",
- "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup",
+ "name": "hypervisor",
"required": false,
- "type": "uuid"
+ "type": "string"
},
{
- "description": "list vms by iso",
+ "description": "the availability zone ID",
"length": 255,
- "name": "isoid",
+ "name": "zoneid",
+ "related": "createZone,updateZone,listZones,listZones",
"required": false,
"type": "uuid"
},
{
- "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.",
+ "description": "list resources by account. Must be used with the domainId parameter.",
"length": 255,
- "name": "state",
+ "name": "account",
"required": false,
"type": "string"
},
{
+ "description": "the user ID that created the VM and is under the account that owns the VM",
+ "length": 255,
+ "name": "userid",
+ "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser",
+ "required": false,
+ "type": "uuid"
+ },
+ {
"description": "list vms by affinity group",
"length": 255,
"name": "affinitygroupid",
@@ -1569,40 +1693,49 @@
"type": "uuid"
},
{
- "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
+ "description": "List by keyword",
"length": 255,
- "name": "isrecursive",
+ "name": "keyword",
"required": false,
- "type": "boolean"
+ "type": "string"
},
{
- "description": "list vms by ssh keypair name",
+ "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter",
"length": 255,
- "name": "keypair",
+ "name": "displayvm",
"required": false,
- "type": "string"
+ "since": "4.4",
+ "type": "boolean"
},
{
- "description": "the user ID that created the VM and is under the account that owns the VM",
+ "description": "list only resources belonging to the domain specified",
"length": 255,
- "name": "userid",
- "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser",
+ "name": "domainid",
+ "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain",
"required": false,
"type": "uuid"
},
{
- "description": "List resources by tags (key/value pairs)",
+ "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
"length": 255,
- "name": "tags",
+ "name": "listall",
"required": false,
- "type": "map"
+ "type": "boolean"
},
{
- "description": "comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all",
+ "description": "",
"length": 255,
- "name": "details",
+ "name": "pagesize",
"required": false,
- "type": "list"
+ "type": "integer"
+ },
+ {
+ "description": "the host ID",
+ "length": 255,
+ "name": "hostid",
+ "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost,listExternalLoadBalancers",
+ "required": false,
+ "type": "uuid"
},
{
"description": "list by the service offering",
@@ -1614,54 +1747,77 @@
"type": "uuid"
},
{
- "description": "the storage ID where vm's volumes belong to",
+ "description": "the security group ID",
"length": 255,
- "name": "storageid",
- "related": "listVsphereStoragePolicyCompatiblePools,cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool",
+ "name": "securitygroupid",
+ "related": "createSecurityGroup,listSecurityGroups,updateSecurityGroup",
"required": false,
+ "since": "4.15",
"type": "uuid"
},
{
- "description": "the target hypervisor for the template",
+ "description": "list vms by vpc",
"length": 255,
- "name": "hypervisor",
+ "name": "vpcid",
+ "related": "createVPC,listVPCs,updateVPC,createVPC,listVPCs,updateVPC,migrateVPC",
"required": false,
- "type": "string"
+ "type": "uuid"
},
{
- "description": "list only resources belonging to the domain specified",
+ "description": "the IDs of the virtual machines, mutually exclusive with id",
"length": 255,
- "name": "domainid",
- "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain",
+ "name": "ids",
+ "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtua [...]
"required": false,
- "type": "uuid"
+ "since": "4.4",
+ "type": "list"
},
{
- "description": "the security group ID",
+ "description": "list vms by template",
"length": 255,
- "name": "securitygroupid",
- "related": "createSecurityGroup,listSecurityGroups,updateSecurityGroup",
+ "name": "templateid",
+ "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos",
"required": false,
- "since": "4.15",
"type": "uuid"
},
{
- "description": "the availability zone ID",
+ "description": "list objects by project",
"length": 255,
- "name": "zoneid",
- "related": "createZone,updateZone,listZones,listZones",
+ "name": "projectid",
+ "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject",
"required": false,
"type": "uuid"
},
{
- "description": "list by network id",
+ "description": "the ID of the virtual machine",
"length": 255,
- "name": "networkid",
- "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listF5LoadBalancerNetworks,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listSrxFirewallNetworks,listBrocadeVcsDeviceNetworks",
+ "name": "id",
+ "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtua [...]
"required": false,
"type": "uuid"
},
{
+ "description": "",
+ "length": 255,
+ "name": "page",
+ "required": false,
+ "type": "integer"
+ },
+ {
+ "description": "list vms by ssh keypair name",
+ "length": 255,
+ "name": "keypair",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "description": "name of the virtual machine (a substring match is made against the parameter value, data for all matching VMs will be returned)",
+ "length": 255,
+ "name": "name",
+ "required": false,
+ "type": "string"
+ },
+ {
"description": "list by network type; true if need to list vms using Virtual Network, false otherwise",
"length": 255,
"name": "forvirtualnetwork",
@@ -1669,40 +1825,40 @@
"type": "boolean"
},
{
- "description": "the host ID",
+ "description": "flag to display the resource icon for VMs",
"length": 255,
- "name": "hostid",
- "related": "addHost,cancelHostMaintenance,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost,listExternalLoadBalancers",
+ "name": "showicon",
"required": false,
- "type": "uuid"
+ "since": "4.16.0.0",
+ "type": "boolean"
},
{
- "description": "List by keyword",
+ "description": "the group ID",
"length": 255,
- "name": "keyword",
+ "name": "groupid",
+ "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup",
"required": false,
- "type": "string"
+ "type": "uuid"
},
{
- "description": "the ID of the virtual machine",
+ "description": "list by network id",
"length": 255,
- "name": "id",
- "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMS [...]
+ "name": "networkid",
+ "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listF5LoadBalancerNetworks,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listSrxFirewallNetworks,listBrocadeVcsDeviceNetworks",
"required": false,
"type": "uuid"
},
{
- "description": "list vms by template",
+ "description": "List resources by tags (key/value pairs)",
"length": 255,
- "name": "templateid",
... 160010 lines suppressed ...